翻译或纠错本页面
创建一个索引¶
通过对 collection 中的文档建立对应的小而高效的索引项,索引可以帮助MongoDB快速的处理和匹配查询。用户可以在任意集合的 document 的任意键上创建索引。默认情况,MongoDB会在每个集合的 _id 键创建一个索引。
这篇文档描述了如何在一个键上创建索引。MongoDB还支持 复合索引 ,它可以索引多个键。参见 创建一个复合索引 来了解创建复合索引的教程。
在单一键上创建索引¶
您可以使用 ensureIndex() 方法或者其它相似的方法 method from your driver 创建索引。方法 ensureIndex() 不会创建重复索引,只会在具有相同索引明细(same specification)的索引不存在的情况下才会创建索引。
例如, 如下操作将会在 records 集合的 userid 键上建立一个索引:
db.records.ensureIndex( { userid: 1 } )
在索引明细中键的值描述了这个键的索引类型。例如,值 1 表明这个索引会将它的索引项按照升序排序。值``-1`` 表明索引会按照降序排布索引项。如果希望了解其他索引类型,请参见 索引类型.
被创建的索引可以用来支持对被索引键 userid 的查询,如下:
db.records.find( { userid: 2 } )
db.records.find( { userid: { $gt: 10 } } )
但是这个索引将不会支持如下对 profile_url 键的查询:
db.records.find( { profile_url: 2 } )
对于不能利用索引的查询,MongoDB必须扫描集合中的所有文档来找到匹配该查询的文档。