我正在尝试优化MongoDB查询。我创建了一个与查询中的字段匹配的索引,但是我似乎无法让MongoDB的查询规划器使用没有明确hint()
的索引,即使nscanned
和milli
对于暗示版本更好。
以下是索引,查询(有和没有提示),以及详细解释:
http://paste.roguecoders.com/p/4face5649612e840da04c5fea0491c9b.txt
另外一点信息:此索引位于副本集中的大型集合中,因此我使用offline method构建了索引。它现在存在于所有节点中。
(最初发布于MongoDB-User。)
答案 0 :(得分:3)
这似乎是2.4中的回归,当{$ in:[]}子句中的一个值是" null"时,它会影响SERVER-5063修复。我把它作为新票https://jira.mongodb.org/browse/SERVER-9495提交了,我希望它很快就会被分类并修好。
同时,根据为什么存在空值(或没有字段?)以及true / false,您有几个选项,其中一些涉及更改查询以及更改数据。我不会建议降级为2.2,但这也是可能的。