分类: NOSQL
2017-12-07 16:43:46
Mongodb是一数据库产品,且开源可以免费使用。支持在目前主流操作系统的运行,并且官方提供了主流语言或框架的Drivers进行对数据库进行操作。相较于传统的关系数据库上更易配置安装学习,以单纯的最为工具使用,一天即可掌握基本使用。本文介绍mongodb的基本使用(在windows上)。
打开cmd.exe , 定位到mongodb的安装路径,进入bin文件夹,调用mongod.exe程序,如果数据库在默认的路径下,单一的执行这个程序就可以。
如果数据库配置在特殊的路径下: 使用命令 mongod.exe –dbpath /data/db 进行启动。
成功启动后,在27017端口进行监听,这时就可以使用mongo客户端进行连接。要使用特定的端口,使用条件 –port 12345
同样的在mongod.exe目录下,使用cmd.exe 执行 mongo.exe命令,进行连接到mongodb服务,成功连接后即可使用js shell进行操作。
在客户端控制台下 输入help命令可以将所有的命令导出查看,开天辟地,这个应该是是最好的文档了,如下所示
查看所有数据库的命令
show dbs
l 创建数据库
在mongodb中,并不需要显示的创建数据库,在实际向数据库中插入数据的时候,如果是第一次则创建数据库,这个像sqlite。
所以使用 use db-name这个命令就是可以。这种情况不仅仅是对数据库,对于集合也同样的适用,在users集合也没有创建的情况下。
对于文档中的 _id,可以将其视为文档的主键,每个mongodb文档都有一个_id
l创建读取数据库的基本方法
insert() 插入数据
find() 查找数据
save() 保存数据
更新删除操作
n更新操作
update() 可用$set来进行设置,对于$set的操作是用来指定一个键并更新键值,若键不存在并创建。而$addToSet,则会确保唯一性。
n删除数据
但remove()操作不会删除集合,它只是从集合中删除文档,需要在remove中说明删除项的信息
为了验证索引功能,首先要有大量的数据基础,所以先构造数据,可以在一个循环中构造20万条数据。
在关系型数据库中,都会提供一些功能来进行对查询的语句进行分析,达到分析目的,在explain,在mongodb 3.4
版本下的返回结果如下
解释说明(参考官方文档):对于explain传递True和False会产生不同结果。
包含了通过查询优化器进行计划查询的细节信息:
namespace : 执行查询的所在的对象
indexFilterSet : 指示说明目前的查询是否有使用索引
将查询优化器执行过程中信息以阶段树的形式进行展现,其中阶段的概念表示在实际执行过程中功能明确的一个过程,可以是 输入阶段,扫描阶段等。
Stage:表示具体的操作阶段名称 其中 COLLSCAN表示集合扫描
filter:过滤得到的
表示在查询优化器中被拒绝的操作队列。
使用ensureIndex()函数,ensureIndex函数的具体说明,可以发现其这个函数需要两个参数,一个是需要建立索引的键的关键字,另一个则是建立的索引的条件,可以指定升降序等。
在成功的创建了索引后,再次执行explain进行查看查询时的结果,可以发现现在进行查找时已经有使用了索引了.