MongoDB学习(一)

了解MongoDB

文档数据库 MongoDB 用于记录文档( Document )结构的数据,如 JSON XML 结构的数据 。一 条文档就是一条记录(含数据和数据结构),一 条记录里可以包含若干个键值对( Key- Value Pair )。键值对由键和值两部分组成 ,键( Key),又叫字段( Field 。键值对的值可以是普通值,如字符型、整型等;也可以是其他值,如文档、数组及文档数组。

1.MongoDB 的主要特征

(1)高性能 。提供 SON XML 等可嵌入数据快速处理功能;提供文挡的索引功能,以提高查询速度(相对传统数据库而言)。
(2)丰富的查询语言。为数据聚合、结构文档、地理空间提供丰富的查询功能。
(3)高可用性。提供自动故障转移和数据冗余处理功能。
(4)水平扩展能力。提供基于多服务器集群的分布式数据处理能力, 具体处理时分主从和权衡(基于 Hash自动推选)两种处理模式(意味可以处理大数据)。
(5)多个存储引擎的支持。 MongoDB 提供 多个存储引擎,如 WiredTiger 引擎、MMAPvl引擎和 In-Memory ,前两个基于硬盘读写的存储引擎,后一个基于内存的存储引擎。(3.2版本默认使用WiredTiger)

2.MongoDB 存储概念比较

MongoDBTRDB比较说明
数据库DB数据库DB都有数据库概念,需要用命令建立数据库名 如根据不同项目建立两个数据库名, 一个为test数据库,用于测试,一个为 goodsdb 数据库,用于正式业务数据存储及操作
集合一个集合对应于一个表。 MongoDB 无须事先定义表结构, TRDB 须事先强制定义
文档每个文档都有一个特殊的一id ,id 值在文档所属集合中是唯一的, 默认由MongoDB 自己维护,当然也可以由程序员编程指定 。一个文档类似于TRDB 一行记录,文档要避免不同集合的关联关系 (Join ),而以行为基础TRDB 强调关联关系
键值对字段值文档的一个键值对类似于 TRDB 里的一个字段值。不过文档里的值可以嵌入更复杂的数据结构

MongoDB 安装

官网提供了详细的安装操作教程:https://docs.mongodb.com/manual/installation
菜鸟教程:https://www.runoob.com/mongodb/mongodb-window-install.html
百度云下载:链接:https://pan.baidu.com/s/1YwHgcHNJX7vAL9I53PXLWg 提取码:38zf
(1)建立安装路径,如 D:\mongodb\data 。在 D:\mongodb\data\路径下分别创建“\db ”和“\log ”子路径, D:\mongodb\data \db 用于存放数据库文件,D :\MongoDB\data\log 用于存放日志(Journal )文件( mongod. log)
(2)单击并运行该安装包。
单击运行安装包,弹出安装界面。
第一步,单击安装界面中的 Next 按钮。
第二步,选择 accept the terms in the License Agreement ,单击Next 按钮。
第三步,依次选择 Custom Browse …,然后选择安装路径( 在此设置为( D:\mongodb\data ),单击 Next 按钮。
第四步,单击 Install 按钮,开始安装,最后单击 Finish 按钮完成安装包的安装。
**注意**
安装路径必须要有 data 子文件路径, db和log 子路径必须在 data 下面,不然安装完成后,执行 Mongo DB会出错。如:D:\MongoDB\data
在bin路径下可以看到如下安装完成的一系列可执行程序。

  • mongod.exe ,是 MongoDB 最核心的服务器端数据库管理软件,不能暴露在公共网络上,主要实现服务器端数据库 的数据处理、数据访问管理及其他后台管理,存在于每台数据库服务器上
  • mongo.exe ,客户端 shell 运行支持程序,为数据库系统管理提供了交互式操作数据库统一界面,也为系统开发人员测试数据库等操作提供了方便。Mongo 实质是 JavaScript 代码交互式执行平台,是读者频繁使用的一个终端软件。
  • mongos.exe ,路由管理程序 ,用于 MongoDB分片集群环境下的业务系统访问的路由管理。
  • mongostat.exe, MongoDB 运行状态监控工具,可以快速查看当前运行的 mongod或mangos 实例的状态。
  • mοngotop.exe ,监控工具,可以根据时间持续对读写数据进行统计,默认1秒返回一次监控信息。
  • mongodump.exe ,以人工执行方式,通过 Mongod或Mongos ,以二进制形式实现对数据库业务数据的导出备份。
  • mongorestore .exe ,以人工执行方式,通过 Mongod Mongos ,以二进制形式实现对备份数据的恢复 ,配 mongodump.exe一起使用。
  • mongoexport.exe ,在人工执行方式下,以 JSON csv 格式导出数据库数据。
  • mongoimport.exe 工执行方式下,对 mo n go ex port. exe 导出的数据恢复到数据库系统之中。
  • bsondump.exe ,将 BSON 文件转换为可阅读的格式,如可以把 Mongodump 生成的输出文件转为 JSON 式的可阅读文件。
  • mongofiles.exe ,把任何数据类型的独立文件上传到 MongoDB 数据库中,以 GridFS形式分块存储,并可以读取相应文件: MongoDB 支持的各种编程语言的 API 接口都提供类似读写功能。
  • mongooplog.exe ,以 Oplog 轮询的方式实现对远程服务器上的数据,同步到本地服务器上。
  • mongoperfexe ,用来测试磁盘 IO 性能的工具。

MongoDB 启动

命令:
C:\Users\win7>cd /d d:\mongodb\data\bin
d:\mongodb\data\bin>mongod -dbpath ” d:\mongodb\data\db”
在这里插入图片描述
新开一个 Windows 命令提示符界面,在其中执行 cd /d d: mongodb data bin ,然后输入
mongo.exe 命令,启动 Mongo Shell 交互式命令执行平台
在这里插入图片描述
Windows 操作系统自动启动 Mongod.exe

  • d:\mongodb\bin>mongod --dbpath “d: \mongodb\data\db” --logpath “d:\mongodb\data\log\MongoDB.log” --install --serviceName “MongoDB”
  • d:\mongodb\bin>net start MongoDB
    一定要在本机用管理员权限操作,不然会报“服务器名无效”的错误
    **注意**
    特殊情况下想关闭服务和删除进程,其操作命令为:
    d : \mongodb\bin>net stop MongoDB (关闭服务)
    d:\mongodb\bin>mongod --dbpath “d:\mongodb\data\db” --logpath “d:\mongodb\data\log\MongoDB.log” --remove --serviceName “MongoDB”(删除进程)

数据库建立基本规则

1.数据库名称定义规则

注意事项
1不能是空字符串,如””
2不得含有“”(空格)、.、$、/\ (空字符〉
3区分大小写,建议全部小写
4名称最多为“字节
5不得使用保留的数据库名,如admin local config test

2.集合名称定义规则

注意事项
1不能是空字符串,如””
2不得含有$、\0 (空字符〉
3不能以”system ”开头,这是为系统集合保留的前缀
4用“.” 来组织子集合,如 book.itbook

3.文档的键的定义规则

注意事项
1不能包含\0 字符(空字符) 这个字符表示键的结束
2“.” 是被保留的,只能在特定环境下用
3区分类型(如字符串、整数等),同时也区分大小写
4键不能重复,在一条文档里起唯一的作用

4.文档值数据类型

数据类型描述举例
1null表示空值或者未定义的对象{”otherbook”:null}
2布尔值true or false{”allowing": true}
332 位整数shell 不支持该类型,默认会转换成 64位浮点数,也可以使用 Numberlnt类{”number NumberInt(”3”)}
464 位整数shell 不支持该类型,默认会转换成 64位浮点数,也可以使用 NumberLong类{”longnumber”:NumberLong(”3”)}
564 位浮点数shell 中的数字就是这种类型{”price”:23.5}
6字符串UTF-8 字符串{”bookname”:”《 编程》 ”}
7符号shell 不支持。它会将数据库中的符号类型的数据自动转换成字符串
8对象 id文挡的 12 字节的唯一id ,保证一条文档记录的唯一性。可以在服务器端自动生成,也可以在代码端生成{”id”: Objectld()}
9日期从标准纪元开始的毫秒数{”saledate”:new Date()}
10正则表达式文档中可以包含正则表达式,遵循JavaScript 的语法{”foo”:/foobar/i}
11代码文档中可以包含 JavaScript 代码{”nodeprocess”:“function() {}}
12undefined未定义{”Explain”: undefined }
13数组值的集合或者列表{”books”;["《C语言》","《java语言》"]}
14内嵌文档JSON,XML 等文档本身{bookname :” 《java语言》,bookpice:33.2, adddate:2017-10-1, allow:true, baseinf:{ ISBN: 183838388,press :”大学出版社”}

数据库建立

1.数据库类型

(1) admin 数据库: 一个权限数据库 ,如果创建用户的时候将该用户添加到 admin 数据库中,那么该用户就自动继承了所有数据库的权限。
(2) local 数据库:这个数据库永远不会被负责,可以用来存储本地单台服务器的任意集合。
(3) config 数据库: 当MongoDB 使用分片模式时, config 数据库在内部使用,用于保存分片的信息。
(4) test 数据库: MongoDB 安装后的默认数据库,可以用于数据库命令的各种操作,包括测试。
**上述数据库为 MongoDB 安装完成后的保留数据库。**
(5)自定义数据库:根据应用系统需要建立的业务数据库。

2.MongoDB 数据库建立相关命令

(1) 创建自定义数据库 use
语法:use 数据库名
(2) 查看数据库 show dbs
语法:show dbs
对于刚刚建立的 goodsdb 数据库并没有显示出来,原因是 goodsd 数据库里没有内容。若 goodsdb据库里有数据了,则会在上述命令显示结果上增加一列 goodsdb 028GB 类似的记录。
(3) 统计某数据库信息 db.stats()
语法:db.stats()
在这里插入图片描述
(4) 删除数据库 dropdatabase()
语法:db.dropDatabase() //删除当前数据库
(5) 查看当前数据库下的集合名称 getCollectionNames()
语法:db.getCollectionNames()
(6) 查看数据库用户角色权限 show roles
语法:show roles
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汪了个王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值