mongodb - 为什么这个查询不使用索引?

时间:2013-10-16 18:08:05

标签: mongodb

我在这个字段上创建了一个索引: ws.eId

因此像这样的查询非常快,它使用BTree游标:

db.workout.find({“ws.eId”:“648”})

但是,此查询不使用索引字段,该字段现在使用基本游标:

db.workout.find({“ws”:{“eId”:“648”}})

- 为什么这个? - 如何使第二个查询使用索引字段?或者我应该为ws创建一个索引?

1 个答案:

答案 0 :(得分:1)

第二个查询在字段ws中搜索具有该值的一个字段的对象。它不能使用索引,因为该对象可能包含的字段多于eld,因此不符合返回集的条件。

要加快此查询,请在ws上创建索引。