为什么MongoDB没有使用正确的索引?

时间:2013-04-23 19:18:19

标签: mongodb

我正在尝试优化MongoDB查询。我创建了一个与查询中的字段匹配的索引,但是我似乎无法让MongoDB的查询规划器使用没有明确hint()的索引,即使nscannedmilli对于暗示版本更好。

以下是索引,查询(有和没有提示),以及详细解释:

http://paste.roguecoders.com/p/4face5649612e840da04c5fea0491c9b.txt

另外一点信息:此索引位于副本集中的大型集合中,因此我使用offline method构建了索引。它现在存在于所有节点中。

(最初发布于MongoDB-User。)

1 个答案:

答案 0 :(得分:3)

这似乎是2.4中的回归,当{$ in:[]}子句中的一个值是" null"时,它会影响SERVER-5063修复。我把它作为新票https://jira.mongodb.org/browse/SERVER-9495提交了,我希望它很快就会被分类并修好。

同时,根据为什么存在空值(或没有字段?)以及true / false,您有几个选项,其中一些涉及更改查询以及更改数据。我不会建议降级为2.2,但这也是可能的。