Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.

explicar (comando de banco de dados)

explain

O comando explain fornece informações sobre a execução dos seguintes comandos: aggregate, count, distinct, find, findAndModify, delete, mapReduce e update.

Dica

Em mongosh, esse comando também pode ser executado por meio dos métodos auxiliares db.collection.explain() e cursor.explain().

Os métodos auxiliares são práticos para os usuários mongosh, mas podem não retornar o mesmo nível de informações que os comandos do banco de dados. Nos casos em que a praticidade não for necessária ou os campos de retorno adicionais forem necessários, use o comando de banco de dados.

Observação

Usar explain ignora todas as entradas de cache do plano existentes e evita que o planejador de query do MongoDB crie uma nova entrada de cache do plano.

Esse comando está disponível em implantações hospedadas nos seguintes ambientes:

  • MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem

Observação

Este comando é aceito em todos os clusters do MongoDB Atlas. Para obter informações sobre o suporte do Atlas a todos os comandos, consulte Comandos não suportados.

  • MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB

  • MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB

Para utilizar o explain, você deve ter permissão para executar o comando subjacente.

O comando tem a seguinte sintaxe:

db.runCommand( { explain: <command>, verbosity: <string>, comment: <any> })

O comando utiliza os seguintes campos:

Campo
Tipo
Descrição

explain

documento

Um documento que especifica o comando para o qual retornar as informações de execução. Para detalhes sobre o documento de comando específico, consulte aggregate, count, distinct, find, findAndModify, delete, mapReduce e update.

verbosity

string

Opcional. Uma string que especifica o modo no qual executar explain. O modo afeta o comportamento de explain e determina a quantidade de informações a serem retornadas.

Os modos possíveis são:

  • "queryPlanner"

  • "executionStats"

  • "allPlansExecution" (Padrão)

Para mais informações sobre os modos, consulte explicar comportamento.

comment

any

Opcional. Um comentário fornecido pelo usuário para anexar a este comando. Depois de definido, esse comentário aparece junto com os registros desse comando nos seguintes locais:

Um comentário pode ser qualquer tipo BSON válido (string, inteiro, objeto, array etc).

Se você especificar explain sem um comment, ele herda qualquer comment no comando especificado para explain.

Observação

O detalhamento padrão de explain e db.collection.explain() difere. explain o padrão é allPlansExecution enquanto db.collection.explain() o padrão é queryPlanner.

O comportamento de explain e a quantidade de informações retornadas dependem do modo verbosity.

O MongoDB executa o otimizador de query para escolher o plano vencedor para a operação em avaliação. explain retorna as informações queryPlanner para o <command> avaliado.

Para operações de gravação, o comando explain retorna informações sobre a operação de gravação que seria executada, mas na verdade não modifica o banco de dados.

Alterado na versão 9.0:

Se você explicar uma operação de gravar em um banco de dados que não existe em um cluster, a operação não criará o banco de dados.

A API estável V1 aceita os seguintes modos de verbosidade para o comando explain:

Aviso

O MongoDB não garante nenhum formato de saída específico do comando explain, mesmo ao usar a Stable API.

Você não pode executar o comando explain /db.collection.explain() no modo executionStats ou allPlansExecution para um aggregation pipeline que contenha o estágio $out. Em vez disso, você pode:

  • executar a explicação no modo queryPlanner ou

  • executar a explicação no modo executionStats ou no modo allPlansExecution, mas sem o estágio $out para retornar informações para os estágios que precedem o estágio $out.

explain as operações podem retornar informações sobre:

O modo de verbosidade (ou seja, queryPlanner, executionStats, allPlansExecution) determina se os resultados incluem executionStats e se executionStats inclui dados capturados durante a seleção do plano.

A saída de explicação é limitada pela profundidade máxima aninhada para documentos BSON, que é de 100 níveis de aninhamento. A saída de explicações que excede o limite é truncada.

Para obter detalhes sobre o resultado, consulte Explicar os resultados.

O comando explain a seguir é executado no modo de verbosidade "queryPlanner" para retornar as informações do planejamento de query de um comando count:

db.runCommand( { explain: { count: "movies", query: { year: { $gt: 2000 } } }, verbosity: "queryPlanner" })

A operação explain a seguir é executada no modo de verbosidade "executionStats" para retornar as informações de planejamento e execução da query para um comando count:

db.runCommand( { explain: { count: "movies", query: { year: { $gt: 2000 } } }, verbosity: "executionStats" })

Por padrão, explain é executado no modo de verbosidade "allPlansExecution". O comando explain a seguir retorna o queryPlanner e o executionStats para todos os planos considerados para um comando update:

Observação

A execução desta explicação não modificará os dados, mas executará o predicado de query da operação de atualização. Para planos candidatos, o MongoDB retorna as informações de execução capturadas durante a fase de seleção do plano.

db.runCommand( { explain: { update: "movies", updates: [ { q: { year: 2000, rated: "PG" }, u: { $set: { available: true } } } ] } })