0

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

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

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

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

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

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

4

1 回答 1

1

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

要加快此查询,请在ws.

于 2013-10-16T18:10:55.163 回答