On this page
$explain
在本页面
$explain
Note
从 v3.0 开始在
mongo
Shell 中弃用从 v3.2 开始,$explain运算符在mongo shell 中已弃用。在mongoShell 程序中,改用db.collection.explain()或cursor.explain()。
$explain运算符提供有关查询计划的信息。它返回一个文档,该文档描述了用于返回查询的过程和索引。在尝试优化查询时,这可能会提供有用的见解。有关输出的详细信息,请参见cursor.explain()。
您可以采用以下两种形式之一指定$explain运算符:
db.collection.find()._addSpecial( "$explain", 1 )
db.collection.find( { $query: {}, $explain: 1 } )
在mongo shell 中,您还可以通过explain()方法检索查询计划信息:
db.collection.find().explain()
Behavior
$explain运行实际查询以确定结果。尽管使用$explain运行查询和不使用$explain运行查询之间存在一些差异,但是通常情况下,两者的性能是相似的。因此,如果查询很慢,则$explain操作也会很慢。
此外,$explain操作会重新评估一组候选查询计划,这可能会使$explain操作执行与正常查询不同的操作。结果,这些操作通常提供 MongoDB 如何执行查询的准确说明,但不能反映这些查询的时间。
See also
MongoDB Performance页,了解有关优化策略的信息。
Database Profiler教程,以获取有关数据库配置文件的信息。