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.
Menu Docs

explicar (comando de banco de dados)

explain

The explain command provides information on the execution of the following commands: aggregate, count, distinct, find, findAndModify, delete, mapReduce, and update.

Dica

In mongosh, this command can also be run through the db.collection.explain() and cursor.explain() helper methods.

Helper methods are convenient for mongosh users, but they may not return the same level of information as database commands. In cases where the convenience is not needed or the additional return fields are required, use the database command.

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

Optional. A string specifying the mode in which to run explain. The mode affects the behavior of explain and determines the amount of information to return.

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.

The behavior of explain and the amount of information returned depend on the verbosity mode.

MongoDB runs the query optimizer to choose the winning plan for the operation under evaluation. explain returns the queryPlanner information for the evaluated <command>.

O MongoDB executa o otimizador de query para escolher o plano vencedor, executa o plano vencedor até a conclusão e retorna estatísticas que descrevem a execução do plano vencedor.

For write operations, explain returns information about the update or delete operations that would be performed, but does not apply the modifications to the database.

explain returns the queryPlanner and executionStats information for the evaluated <command>. However, executionStats does not provide query execution information for the rejected plans.

By default, explain runs in "allPlansExecution" verbosity mode.

O MongoDB executa o otimizador de query para escolher o plano vencedor e executar o plano vencedor para conclusão. No modo "allPlansExecution", MongoDB retorna estatísticas descrevendo a execução do plano vencedor, bem como estatísticas para os outros planos candidatos capturados durante a seleção do plano.

For write operations, explain returns information about the update or delete operations that would be performed, but does not apply the modifications to the database.

explain returns the queryPlanner and executionStats information for the evaluated <command>. The executionStats includes the completed query execution information for the winning plan.

Se o otimizador de query considerar mais de um plano, as informaçõesexecutionStats também incluirão as informações de execução parcial capturadas durante a fase de seleção do plano para os planos de candidatos vencedores e rejeitados.

For write operations, the explain command returns information about the write operation that would be performed but does not actually modify the database.

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

Aviso

MongoDB does not guarantee any specific output format from the explain command, even when using the Stable API.

You cannot run the explain command/db.collection.explain() in executionStats mode or allPlansExecution mode for an aggregation pipeline that contains the $out stage. Instead, you can either:

  • 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.

The following explain command runs in "queryPlanner" verbosity mode to return the query planning information for a count command:

db.runCommand(
{
explain: { count: "products", query: { quantity: { $gt: 50 } } },
verbosity: "queryPlanner"
}
)

The following explain operation runs in "executionStats" verbosity mode to return the query planning and execution information for a count command:

db.runCommand(
{
explain: { count: "products", query: { quantity: { $gt: 50 } } },
verbosity: "executionStats"
}
)

By default, explain runs in "allPlansExecution" verbosity mode. The following explain command returns the queryPlanner and executionStats for all considered plans for an update command:

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: "products",
updates: [
{
q: { quantity: 1057, category: "apparel" },
u: { $set: { reorder: true } }
}
]
}
}
)