permite observar cómo MongoDB planea y ejecuta una consulta. No optimiza por sí mismo: entrega evidencia para comparar query shape, índice, cardinalidad y coste.
Incluye información de evaluación de candidatos. Úsalo para diagnóstico específico; genera más información y no debe ejecutarse indiscriminadamente en producción.
Si parte de la condición aparece en FETCH, el índice produjo candidatos que luego se descartan. Puede ser aceptable si son pocos; problemático si son millones.
Operaciones de escritura también dependen del filtro. Puedes explicar formas compatibles para comprobar que un update masivo no hace scan completo. No ejecutes una escritura peligrosa solo para medirla; utiliza APIs y entornos seguros.
La primera ejecución puede leer disco; la siguiente puede aprovechar cache. Prueba ambas cuando sea relevante y no “calientes” artificialmente un benchmark sin documentarlo.
explain() responde cuánto trabajo hace MongoDB y por qué. Las métricas deben interpretarse en relación con resultados y workload. Un plan se valida con cardinalidad, datos representativos, estabilidad y métricas externas, no por el nombre de un stage aislado.
Comprueba lo aprendido
¿Qué diferencia existe entre queryPlanner y executionStats?
¿Qué indica una relación docsExamined/nReturned alta?