索引就像书的目录,如果查找某内容在没有目录的帮助下,只能全篇查找翻阅,这导致效率非常的低下;如果在借助目录情况下,就能很快的定位具体内容所在区域,效率会直线提高。
索引简介
首先打开命令行,输入mongo。默认mongodb会连接名为test的数据库。
点查询(point query)用于查询单个值(尽管包含这个值的文档可能有多个)
多值查询(multi-value-query)唯一索引可以确保集合的每个文档的指定键都有唯一值。
db.users.ensureIndex({‘username’: 1, unique: true})
比如使用mongoose框架,在定义schema时,即可指定unique: true.
如果插入2个相同都叫张三的数据,第二次插入的则会失败。_id即为唯一索引,并且不能删除。
稀疏索引
使用sparse可以创建稀疏索引
>db.users.ensureIndex({’email’: 1}, {‘unique’: true, ‘sparse’: true})
索引管理
system.indexes集合中包含了每个索引的详细信息
db.system.indexes.find()
1.ensureIndex()创建索引
db.users.ensureIndex({‘username’: 1})
后台创建索引,这样数据库再创建索引的同时,仍然能够处理读写请求,可以指定background选项。
db.test.ensureIndex({“username”:1},{“background”:true})
2.getIndexes()查看索引
3.dropIndex删除索引> db.users.dropIndex("username_1"){ "nIndexesWas" : 2, "ok" : 1 }或
全选复制放进笔记> db.users.dropIndex({“username”:1})