explain() (Explicar Plano de Execução)

Última atualização: 2026-10-09

explain() (Explicar Plano de Execução)

explain() revela o plano de execução de uma consulta: `db.users.find({ age: { $gt: 20 } }).explain('executionStats')`. O resultado mostra uso de índices, documentos varridos e tempos — o kit de ferramentas central para ajuste de desempenho. O argumento pode ser 'queryPlanner' (padrão, apenas o plano), 'executionStats' (estatísticas reais de execução) ou 'allPlansExecution' (todos os planos candidatos).

CategoriaCursor
Versão do MongoDB1.0+
Idioma do Exemplomongosh (Shell)

📝 Sintaxe

db.<collection>.find(<filter>).explain(<verbosity>)

⚙️ Parâmetros

modoOpcional. 'queryPlanner', 'executionStats' ou 'allPlansExecution'.

Retorno:Documento com o plano de execução e estatísticas.

▶ Exemplo

Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):

// explain: verifica se a consulta de age usa um índice
const plan = db.users.find({ age: { $gt: 20 } })
  .explain('executionStats')
print('Docs examined: ' + plan.executionStats.totalDocsExamined)

Saída:

Docs examinados: 1000

📌 Notas

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QComo sei se uma consulta usa um índice?
AInspecione winningPlan: IXSCAN significa que um índice foi usado; COLLSCAN significa varredura completa da coleção.
QQuais são as diferenças entre os três modos de explain?
AqueryPlanner mostra apenas o plano e é o mais rápido; executionStats adiciona estatísticas reais de execução; allPlansExecution detalha cada plano candidato.
QO explain realmente executa a consulta?
AEle executa sim (exceto no modo queryPlanner) — as estatísticas vêm de uma execução real, mas nenhum documento é retornado.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%