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

db.coleção.explain() (método mongosh)

MongoDB com drivers

Esta página documenta um método mongosh. Para ver o método equivalente em um driver MongoDB , consulte a página correspondente para sua linguagem de programação:
db.collection.explain()

Retorna informações no plano de query para os seguintes métodos:

Retorna informações sobre mapReduce().

Para usar, acrescente um dos métodos mencionados db.collection.explain() acima db.collection.explain() a:

db.collection.explain().<method(...)>

Por exemplo,

db.products.explain().remove( { category: "apparel" }, { justOne: true } )

Para mais exemplos, consulte Exemplos. Consulte também db.collection.explain().help().

O método tem o seguinte db.collection.explain() parâmetro:

Parâmetro
Tipo
Descrição

verbosity

string

Opcional. Especifica o modo de verbosidade para o resultado de explicação. O modo afeta o comportamento de explain() e determina a quantidade de informações a serem retornadas. Os modos possíveis são:

  • "queryPlanner" (Padrão)

  • "executionStats"

  • "allPlansExecution"

Para compatibilidade com versões anteriores do cursor.explain(), MongoDB interpreta true como "allPlansExecution" e false como "queryPlanner".

Para obter mais informações sobre os modos, consulte Modos de detalhamento.

Observação

db.collection.explain() o padrão é queryPlanner, ao contrário do comando explain, cujo padrão é allPlansExecution.

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

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.

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

Por padrão, o executadb.collection.explain() no queryPlanner modo de verbosidade do.

O MongoDB executa o otimizador de query para escolher o plano vencedor para a operação em avaliação. db.collection.explain() retorna as informações do método queryPlanner avaliado.

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.

Para operações de gravação, o retorna informações sobre asdb.collection.explain() operações de atualização ou exclusão que seriam executadas, mas não aplica as modificações no banco de dados.

db.collection.explain() retorna as queryPlanner informações e do método executionStats executionStats avaliado. No entanto, o não fornece informações de execução da query para os planos rejeitados.

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.

Para operações de gravação, o retorna informações sobre asdb.collection.explain() operações de atualização ou exclusão que seriam executadas, mas não aplica as modificações no banco de dados.

db.collection.explain()retorna as informaçõesqueryPlannereexecutionStatsdo método avaliado. OexecutionStatsinclui as informações de execução da query concluídas para o plano vencedor.

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.

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

Você não pode executar o explain comando /db.collection.explain() no executionStats modo ou no allPlansExecution modo para um que aggregation pipeline $out contém o estágio. 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.

O métododb.collection.explain()envolve o comandoexplaine é o caminho preferido para executarexplain.

db.collection.explain().find() é semelhante a com as seguintes diferenças db.collection.find().explain() principais:

db.collection.explain().aggregate() é equivalente a passar a opção de explicação para o db.collection.aggregate() método.

Para visualizar a lista de operações suportadas pelo,db.collection.explain() execute:

db.collection.explain().help()

db.collection.explain().find() retorna um cursor, que permite a cadeia de modificadores de query. Para ver a lista de modificadores de query suportados pelo,db.collection.explain().find() bem como os métodos relacionados ao cursor, execute:

db.collection.explain().find().help()

Você pode encadear vários modificadores db.collection.explain().find() para. Para ver um exemplo, consulte Explicar find() com modificadores.

db.collection.explain() as operações podem retornar informações sobre:

  • explainVersion, a versão do formato de saída (por exemplo, "1").

  • command, que detalha o comando a ser explicado.

  • queryPlanner, que detalha o plano selecionado pelo otimizador de query e lista os planos rejeitados.

  • executionStats, que detalha a execução do plano vencedor e os planos rejeitados.

  • serverInfo, que fornece informações sobre a instância MongoDB.

  • serverParameters, que detalha os parâmetros internos.

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.

Por padrão, o executadb.collection.explain() no "queryPlanner" modo de verbosidade do.

O exemplo a seguir executa db.collection.explain() no "queryPlanner" modo de verbosidade para retornar as informações de planejamento de query para a operação count() especificada:

db.products.explain().count( { quantity: { $gt: 50 } } )

O exemplo a seguir executa db.collection.explain() no "executionStats" modo de verbosidade para retornar as informações de planejamento e execução da query para a operação find() especificada:

db.products.explain("executionStats").find(
{ quantity: { $gt: 50 }, category: "apparel" }
)

O exemplo a seguir executa db.collection.explain() no "allPlansExecution" modo de verbosidade . db.collection.explain() retorna queryPlanner e para todos os executionStats findAndModify() planos considerados para a operação especificada:

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.products.explain( "allPlansExecution" ).findAndModify( {
query: { name: "Tom", state: "active", rating: { $gt: 10 } },
sort: { rating: 1 },
update: { $inc: { score: 1 } }
} )

db.collection.explain().find() A construct permite o encadeamento de query modifiers. Por exemplo, a operação a seguir fornece informações sobre o find() método com modificadores sort() hint() de query e.

db.products.explain("executionStats").find(
{ quantity: { $gt: 50 }, category: "apparel" }
).sort( { quantity: -1 } ).hint( { category: 1, quantity: -1 } )

Para uma lista de modificadores de query disponíveis, execute o seguinte mongosh em:

db.collection.explain().find().help()