MongoDB findOne使用explain

9

在MongoDB中,是否可以使用explain来执行findOne操作?

目前我尝试了以下方法:

db.coll.findOne({query}).explain()
db.collection.findOne({query})._addSpecial( "$explain", 1 )

并且两者都没有成功。

我知道我可以使用 limit 1,但是不使用有可能吗?


6
之所以它不起作用是因为find返回一个带有解释方法的游标,而findOne返回纯文档。 - Philipp
@Philipp 谢谢。那么我理解的是除了限制之外没有其他方法了吗? - Salvador Dali
2
如果您的意图是仅返回一个文档,但不想返回所有结果,则可以使用$maxScan作为游标修改器。例如,_addSpecial("$maxScan", 2)强制优化器在返回第一个结果后放弃“扫描”。但是,任何您想要从中输出“explain”的内容都必须是游标。同样适用,需要游标则使用.find() - Neil Lunn
1
findOne只是带有限制为1和漂亮打印选项的查找操作。你为什么要避免使用限制呢? - Asya Kamsky
@AsyaKamsky 我知道这点。我只是想了解是否有其他选项。然后我了解到了 $maxScan。 - Salvador Dali
显示剩余2条评论
网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接