和关系数据库的索引一样,为了更快的查找如果没有索引,Mongodb 在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟。
建立索引:
db.集合名称.ensureIndex({key:1|-1}) 1代表升序,-1代表降序
ensureIndex() 的可选参数:
参数 类型 描述
background Boolean 建立索引要不要阻塞其他数据库操作,默认为false
unique Boolean 建立的索引是否唯一,默认false
name string 索引的名称,若未指定,系统自动生成
dropDups Boolean 建立唯一索引时,是否删除重复记录,默认flase
sparse Boolean 对文档不存在的字段数据不启用索引,默认false
expireAfterSeconds integer 设置集合的生存时间,单位为秒
v index version 索引的版本号
weights document 索引权重值,范围为1到99999
default-language string 默认为英语
language_override string 默认值为 language