Docs Menu
Docs Home
/ /

cursor.explain() (método mongosh)

cursor.explain(verbosity)

Importante

Método mongosh

Esta página documenta una mongosh Método. Esta no es la documentación de un controlador específico del lenguaje, como Node.js.

Para los drivers de API de MongoDB, consulte la documentación del driver de MongoDB específica del lenguaje.

Proporciona información sobre el plan de consulta para el db.collection.find() .

El método explain() tiene la siguiente forma:

db.collection.find().explain()

El método explain() tiene el siguiente parámetro:

Parameter
Necesidad
Tipo
Descripción

verbose

Opcional

String

Determina la cantidad de información que se incluirá en la salida de la explicación. Los posibles modos de verbosidad son:

  • allPlansExecution

  • executionStats

  • queryPlanner ( Pordefecto)

Para compatibilidad con versiones anteriores de explain(), MongoDB interpreta true como allPlansExecution y false como queryPlanner.

Para obtener más información sobre los modos, consulta Modas de nivel de verbosidad.

El método devuelve un documento con el plan de consulta y, opcionalmente, las estadísticas de explain() ejecución.

Este método está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

Nota

Este comando es compatible con todos los clústeres de MongoDB Atlas. Para obtener información sobre el soporte de Atlas para todos los comandos, consulte Comandos no compatibles.

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

Para usar explain, se debe tener permiso para ejecutar el comando subyacente.

Nota

El uso de explain ignora todas las entradas existentes en la caché del plan e impide que el planificador de query de MongoDB cree una nueva entrada en la caché del plan.

El comportamiento de cursor.explain() y la cantidad de información devuelta dependen del modo verbosity.

Por defecto, cursor.explain() se ejecuta en el nivel de verbosidad queryPlanner.

MongoDB ejecuta el optimizador del query para elegir el plan ganador para la operación en evaluación. cursor.explain() devuelve la información de queryPlanner para el método evaluado.

MongoDB ejecuta el optimizador del query para elegir el plan ganador, ejecuta el plan ganador hasta su finalización y devuelve estadísticas que describen la ejecución del plan ganador.

cursor.explain() devuelve la queryPlanner y la executionStats información para el método evaluado. Sin embargo, executionStats no proporciona información de ejecución de query para los planes rechazados.

MongoDB ejecuta el optimizador de la query para elegir el plan ganador y ejecuta el plan ganador hasta su finalización. En el modo "allPlansExecution" MongoDB devuelve estadísticas que describen la ejecución del plan ganador, así como estadísticas de los otros planes candidatos capturados durante la selección del plan.

cursor.explain() devuelve la queryPlanner y la executionStats información para el método evaluado. El executionStats incluye la información de ejecución de la query completada para el plan ganador.

Si el optimizador del query consideró más de un plan, la información de executionStats también incluye la información de ejecución parcial capturada durante la fase de selección del plan tanto para los planes ganadores como para los rechazados.

db.collection.explain().find() es similar a con las siguientes diferencias db.collection.find().explain() clave:

Consulta db.collection.explain() para obtener más información.

cursor.explain() Las operaciones pueden devolver información sobre:

  • explainVersion, la versión del formato de salida (por ejemplo, "1").

  • command, que detalla el comando que se está explicando.

  • queryShapeHash, que comienza en MongoDB,8.0 que es una cadena hexadecimal con el hash de una forma de consulta. Para más información, consulte Formas de consulta, Hash de forma de explain.queryShapeHash consulta y.

  • queryPlanner, que detalla el plan seleccionado por el optimizador del query y enumera los planes rechazados.

  • executionStats, que detalla la ejecución del plan ganador y de los planes rechazados.

  • serverInfo, que proporciona información sobre la instancia de MongoDB.

  • serverParameters, que detalla los parámetros internos.

El nivel de verbosidad (es decir, queryPlanner, executionStats, allPlansExecution) determina si los resultados incluyen executionStats y si executionStats incluye datos capturados durante la selección del plan.

La salida de la explicación está limitada por la profundidad máxima de anidación para documentos BSON, que es de 100 niveles de anidación. Explicar que la salida que excede el límite se trunca.

Para obtener más detalles sobre la salida, consultar Explicación de resultados.

El siguiente ejemplo ejecuta cursor.explain() en modo de verbosidad "executionStats" para devolver la información de planificación y ejecución de consultas para la operación db.collection.find() especificada:

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

Volver

cursor.disableBlockWarnings

En esta página