On this page本页内容
cursor.explain(verbosity) This is a mongosh method. This is not the documentation for Node.js or other programming language specific driver methods.
In most cases, mongosh methods work the same way as the legacy mongo shell methods. However, some legacy methods are unavailable in mongosh.
For the legacy mongo shell documentation, refer to the documentation for the corresponding MongoDB Server release:
For MongoDB API drivers, refer to the language specific MongoDB driver documentation.
Provides information on the query plan for the 提供有关db.collection.find() method.db.collection.find()方法的查询计划的信息。
The explain() method has the following form:explain()方法具有以下形式:
db.collection.find().explain()
The explain() method has the following parameter:explain()方法具有以下参数:
verbose | string |
|
The explain() method returns a document with the query plan and, optionally, the execution statistics.explain()方法返回一个文档,其中包含查询计划和可选的执行统计信息。
The behavior of cursor.explain() and the amount of information returned depend on the verbosity mode.cursor.explain()的行为和返回的信息量取决于verbosity模式。
queryPlannerBy default, 默认情况下,cursor.explain() runs in queryPlanner verbosity mode.cursor.explain()以queryPlanner详细模式运行。
MongoDB runs the query optimizer to choose the winning plan for the operation under evaluation. MongoDB运行查询优化器,为正在评估的操作选择获胜的计划。cursor.explain() returns the 返回计算方法的queryPlanner information for the evaluated method.queryPlanner信息。
executionStatsMongoDB runs the query optimizer to choose the winning plan, executes the winning plan to completion, and returns statistics describing the execution of the winning plan.MongoDB运行查询优化器来选择获胜计划,执行获胜计划直到完成,并返回描述获胜计划执行情况的统计信息。
cursor.explain() returns the 返回计算方法的queryPlanner and executionStats information for the evaluated method. queryPlanner和executionStats信息。However, 但是,executionStats does not provide query execution information for the rejected plans.executionStats不为被拒绝的计划提供查询执行信息。
allPlansExecutionMongoDB runs the query optimizer to choose the winning plan and executes the winning plan to completion. MongoDB运行查询优化器来选择获胜计划,并执行获胜计划直至完成。In 在"allPlansExecution" mode, MongoDB returns statistics describing the execution of the winning plan as well as statistics for the other candidate plans captured during plan selection."allPlansExecution"模式下,MongoDB返回描述获胜计划执行情况的统计信息,以及计划选择期间捕获的其他候选计划的统计信息。
cursor.explain() returns the queryPlanner and executionStats information for the evaluated method. cursor.explain()返回计算方法的queryPlanner和executionStats信息。The executionStats includes the completed query execution information for the winning plan.executionStats包括获胜计划的已完成查询执行信息。
If the query optimizer considered more than one plan, 如果查询优化器考虑了多个计划,那么executionStats information also includes the partial execution information captured during the plan selection phase for both the winning and rejected candidate plans.executionStats信息还包括在计划选择阶段为获胜和被拒绝的候选计划捕获的部分执行信息。
db.collection.explain().find()db.collection.explain().find() is similar to 与db.collection.find().explain() with the following key differences:db.collection.find().explain()类似,但有以下主要区别:
db.collection.explain().find() construct allows for the additional chaining of query modifiers. db.collection.explain().find()构造允许额外链接查询修饰符。db.collection.explain().find().help()。db.collection.explain().find() returns a cursor, which requires a call to .next(), or its alias .finish(), to return the explain() results. db.collection.explain().find()返回一个游标,该游标需要调用.next()或其别名.finish()来返回explan()结果。mongosh, mongosh automatically calls .finish() to return the results. mongosh中以交互方式运行,mongosh会自动调用.finish()返回结果。.next(), or .finish(), to return the results. .next()或.finish()才能返回结果。db.collection.explain().find().help()。See 有关详细信息,请参阅db.collection.explain() for more information.db.collection.explain()。
cursor.explain() operations can return information regarding:操作可以返回有关以下内容的信息:
explainVersion"1");"1");commandqueryPlannerexecutionStatsserverInfoserverParametersThe verbosity mode (i.e. 详细模式(即queryPlanner, executionStats, allPlansExecution) determines whether the results include executionStats and whether executionStats includes data captured during plan selection.queryPlanner、executionStats、allPlansExecution)确定结果是否包含executionStats,以及executionStats是否包含在计划选择期间捕获的数据。
Explain output is limited by the maximum Nested Depth for BSON Documents, which is 100 levels of nesting. 解释输出受BSON文档的最大嵌套深度限制,即100级嵌套。Explain output that exceeds the limit is truncated.解释超出限制的输出被截断。
For details on the output, see Explain Results.有关输出的详细信息,请参阅解释结果。
The following example runs 以下示例以"executionStats"详细模式运行cursor.explain() in "executionStats" verbosity mode to return the query planning and execution information for the specified db.collection.find() operation:cursor.explain(),以返回指定db.collection.find()操作的查询计划和执行信息:
db.products.find(
{ quantity: { $gt: 50 }, category: "apparel" }
).explain("executionStats")