$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
$explainoperador proporciona información sobre el plan del query. Devuelve un documento que describe el proceso y los índices utilizados para devolver la query. Esto puede proporcionar una perspectiva útil al intentar optimizar una query. Para obtener detalles sobre la salida, consulta cursor.explain().Puedes especificar el
$explainoperador en cualquiera de las siguientes formas:db.collection.find()._addSpecial( "$explain", 1 ) db.collection.find( { $query: {}, $explain: 1 } ) En
mongosh, también se puede recuperar la información del plan del query mediante el métodoexplain():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.