适当的索引可以提高查询效率,如果没有索引MongoDB会扫描集合中的全部文档,再选取符合条件的文档,效率是极低的。
单字段索引
现有集合user,样本文档字段如下:
{
"number":"0191232",
"name":"王泽",
"location":{
"state":"非洲",
"city":"阿依土鳖"
}
}
给 number 字段创建索引:
db.user.createIndex( { "number" : 1 } )
在嵌入式字段上创建索引
样本文档的 state 字段是嵌入式的,通过以下命令创建索引:
db.user.createIndex( { "location.state" : 1 } )
在嵌入式文档上创建索引
我们还可以在 location 整个嵌入式文档上创建索引:
db.user.createIndex( { "location" : 1 } )