索引
MongoDB是基于集合建立索引(index),索引的作用类似于传统关系型数据库,目前是为了提高查询速度。
MongoDB的索引基于B-tree数据结构及对应算法形成。
默认情况下,在建立集合的同时,MongoDB数据库自动为集合_id建立唯一索引,可以避免重复插入同一_id值的文档记录
单一字段(键)索引
语法: db.collection_name.createIndex({<key>:<n>})
命令说明: 对一个集合文档的键建立索引,key为键名,n=1为升序,n=-1为降序。
对单一键建立索引
显示:
嵌套文档单字段索引
字段值唯一索引
语法: db.collection_name,createIndex({<key>:<n>,<key>:<n>,…},
{unique:true})
命令说明: 对一个或多个字段建立唯一索引。Key为键名,n=1为升序,n=-1为降序
多字段索引
语法: db.collection_name.createIndex({<key>:<n>,<key>:<n>,…})
命令说明: 对两个或两个以上的字段建立索引。Key为键名,n=1为升序,n=-1为降序
建立多字段索引
多字段唯一索引
文本索引
语法: db.collection_name.createIndex({<key1>:”text”,<key2>:”text’,…})
命令说明: 在集合里,为文本字段内容的文档建立文本索引
基本文本索引
指定权重文本索引
通配符文本索引
哈希索引
ensureIndex()索引
语法: db.collection_name.ensureIndex({{key1:n},{key2:n},…},option)
命令说明: key1、key2是集合里的键名;n=1为升序,n=-1为降序;option为可选参数
与索引相关的其他方法
db.collection.dropIndex(index): 移除集合指定的索引功能。Index参数为指定需要删除的集合索引名,可用getIndexes()函数获取集合的所有索引名称。
db.collection.dropIndexes(): 移除一个集合的所有索引名称。
db.collection.getIndexes(): 返回一个指定集合的现有索引描述信息的文档数组。
db.collection.reIndex(): 删除指定集合上所有索引,并重新构建所有现有索引。在具有大量数据集合的情况下,该操作非常消耗服务器的运行资源。
db.collection.totalIndexSize(): 提供指定集合索引大小的报告信息。