Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

cursor.explain()

在此页面上

  • 定义
  • 兼容性
  • 行为
  • 输出
  • 例子
cursor.explain(verbosity)

重要

mongosh 方法

本页面提供 mongosh 方法的相关信息。这不是特定于语言的驱动程序(例如 Node.js)的文档。

如需了解 MongoDB API 驱动程序,请参阅特定语言的 MongoDB 驱动程序文档。

提供有关 db.collection.find()方法的查询计划的信息。

explain()方法采用以下形式:

db.collection.find().explain()

explain()方法具有以下参数:

Parameter
必要性
类型
说明
verbose
Optional
字符串

确定要包含在解释输出中的信息量。可能的详细模式有:

  • allPlansExecution

  • executionStats

  • queryPlanner默认值

为了向后兼容早期版本的 explain(), MongoDB将 true 解释为 allPlansExecution,并将 false 解释为 queryPlanner

有关这些模式的更多信息,请参阅详细模式

explain() 方法返回包含查询计划和执行统计信息(可选)的文档。

此方法可用于以下环境中托管的部署:

注意

所有 MongoDB Atlas 集群都支持此命令。有关 Atlas 对所有命令的支持的信息,请参阅不支持的命令

注意

使用 explain 会忽略所有现有的计划缓存条目,并防止 MongoDB 查询计划器创建新的计划缓存条目。

cursor.explain() 的行为和返回的信息量取决于 verbosity 模式。

默认情况下,cursor.explain()queryPlanner 详细模式运行。

MongoDB 运行查询优化器,以便为正在接受评估的操作选择优胜计划。cursor.explain() 返回已评估方法的 queryPlanner 信息。

MongoDB 运行查询优化器来选择获胜计划并执行获胜计划直至完成,并返回描述获胜计划执行情况的统计信息。

cursor.explain() 返回被评估方法的 queryPlannerexecutionStats 信息。但是,executionStats 并未提供被拒绝计划的查询执行信息。

MongoDB 运行查询优化器来选择优胜计划并执行该计划直至完成。在 "allPlansExecution" 模式下,MongoDB 返回描述优胜计划执行情况的统计信息以及在计划选择期间捕获的其他候选计划的统计信息。

cursor.explain() 返回被评估方法的 queryPlannerexecutionStats 信息。executionStats 包含优胜计划已完成查询执行信息。

如果查询优化器考虑了多个计划,executionStats 信息则还包括在计划选择阶段为获胜和被拒计划收集的部分执行信息。

db.collection.explain().find()db.collection.find().explain() 相似,主要区别如下:

有关详细信息,请参阅 db.collection.explain()

cursor.explain() 操作可以返回以下信息:

详细模式(例如 queryPlannerexecutionStatsallPlansExecution )决定了结果是否包括 executionStats,以及 executionStats 是否包括计划选择期间捕获的数据。

解释输出会受到 BSON 文档的最大嵌套深度的限制,即 100 级嵌套。解释超出限制的输出会被截断。

有关输出的详细信息,请参阅解释结果

以下示例在“executionStats”详细模式下运行 cursor.explain(),以返回指定 db.collection.find() 操作的查询计划和执行信息:

db.products.find(
{ quantity: { $gt: 50 }, category: "apparel" }
).explain("executionStats")

后退

游标