$explainNota
Obsoleto desde v3.0
A partir de la v3.2, el operador
$explainestá obsoleto enmongosh. Enmongosh, utilizadb.collection.explain()ocursor.explain()en su lugar.El operador proporciona información sobre el plan de consulta. Devuelve un documento que describe el proceso y los índices utilizados para devolver la consulta. Esto puede proporcionar información útil al intentar optimizar una consulta. Para obtener más información sobre la salida,
$explainconsulte cursor.explain().Puede especificar el operador en cualquiera de las siguientes
$explainformas:db.collection.find()._addSpecial( "$explain", 1 ) db.collection.find( { $query: {}, $explain: 1 } ) mongoshEn, también puede recuperar información del plan de consulta a través delexplain()método:db.collection.find().explain()
Comportamiento
$explain ejecuta la query real para determinar el resultado. Aunque existen algunas diferencias entre ejecutar la consulta con $explain y ejecutarla sin ella, en general, el rendimiento será similar entre ambos. Por lo tanto, si la query es lenta, la operación $explain también es lenta.
Además, la $explain operación reevalúa un conjunto de posibles planes del query, lo que puede hacer que la $explain operación se ejecute de manera diferente en comparación con una query normal. Como resultado, estas operaciones generalmente proporcionan una descripción precisa de cómo MongoDB ejecutaría la query, pero no reflejan la duración de estas queries.
Tip
MongoDB Performance página para obtener información sobre estrategias de optimización.
Tutorial de perfilador de base de datos para información sobre el perfil de la base de datos.