我在这个字段上创建了一个索引: ws.eId
因此像这样的查询非常快,它使用BTree游标:
db.workout.find({“ws.eId”:“648”})
但是,此查询不使用索引字段,该字段现在使用基本游标:
db.workout.find({“ws”:{“eId”:“648”}})
- 为什么这个? - 如何使第二个查询使用索引字段?或者我应该为ws创建一个索引?
答案 0 :(得分:1)
第二个查询在字段ws
中搜索具有该值的一个字段的对象。它不能使用索引,因为该对象可能包含的字段多于eld
,因此不符合返回集的条件。
要加快此查询,请在ws
上创建索引。