MongoDB 索引

索引可以让查询更快。如果没有索引,查询文档时时,MongoDB必须扫描集合的每个文档。这种扫描效率非常低,MongoDB需要处理大量数据。

索引针对特定字段或一组字段创建。

ensureIndex() 方法

要创建索引,可使用ensureIndex()方法。

语法

ensureIndex()方法的基本语法如下:

db.COLLECTION_NAME.ensureIndex({KEY:1})

这里的键是要创建索引的字段,1表示按升序创建索引,-1表示降序。

例子

db.mycol.ensureIndex({"title":1})

ensureIndex()方法中,可以传递多个字段,该方法将在多个字段上创建索引。

db.qikegu.ensureIndex({"title":1,"description":-1})

ensureIndex()方法还接受其他一些可选参数,如下所示:

参数 类型 描述
background Boolean 在后台构建索引,以便构建索引不会阻塞其他数据库活动。指定true在后台生成,默认值为false。
unique Boolean 创建一个唯一索引。指定true以创建唯一索引,默认值为false。
name string 索引的名称。如果未指定,MongoDB将通过连接索引字段的名称和排序顺序生成索引名称。
dropDups Boolean 在可能具有重复项的字段上创建唯一索引。MongoDB只索引键的第一次出现,并从包含该键的后续出现的集合中删除所有文档。指定true以创建唯一索引。默认值为false。
sparse Boolean 如果为真,则索引仅引用具有指定字段的文档。这些索引使用更少的空间,但在某些情况下(特别是排序)表现不同。默认值为false。
expireAfterSeconds integer 指定一个值(以秒为单位)作为TTL,用于控制MongoDB在这个集合中保留文档的时间。
v index version 索引版本号。默认索引版本取决于创建索引时运行的MongoDB版本。
weights document 权重是一个从1到99,999的数字,表示该字段相对于其他索引字段的重要性。
default_language string 对于文本索引,用于确定停止词列表,词干和记号赋予器规则的语言。默认值是english。
language_override string 对于文本索引,在包含的文档中指定字段的名称,即覆盖默认语言的语言。默认值是language。


浙ICP备17015664号 浙公网安备 33011002012336号 联系我们 网站地图  
@2019 qikegu.com 版权所有,禁止转载