Definição
cursor.explain(verbosity)Importante
Método mongosh
Este é um método
mongosh. Esta não é a documentação deNode.jsou de outros métodos de driver específicos da linguagem de programação.Na maioria dos casos, os métodos
mongoshfuncionam da mesma forma que os métodos legado do shellmongo. No entanto, alguns métodos legado não estão disponíveis emmongosh.Para a documentação do shell legado
mongo, consulte a documentação para a release correspondente do MongoDB Server:Para drivers da API do MongoDB, consulte a documentação do driver do MongoDB específica do idioma.
Fornece informações sobre o plano de query para o método
db.collection.find().O método
explain()tem o seguinte formulário:db.collection.find().explain() O método
explain()tem o seguinte parâmetro:ParâmetronecessidadeTipoDescriçãoverboseOpcional
String
Determina a quantidade de informações a incluir no resultado de explicação. Os possíveis modos de verbosidade são:
allPlansExecutionexecutionStatsqueryPlanner(Padrão)
Para compatibilidade com versões anteriores do
explain(), MongoDB interpretatruecomoallPlansExecutionefalsecomoqueryPlanner.Para obter mais informações sobre os modos, consulte Modos de Verbosidade.
O método
explain()retorna um documento com o plano de query e, opcionalmente, as estatísticas de execução.
Compatibilidade
Esse método 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
Comportamento
Modos de Verbosidade
O comportamento de cursor.explain() e a quantidade de informações retornadas dependem do modo verbosity.
queryPlanner Modo
Por padrão, cursor.explain() é executado no modo de detalhamento queryPlanner.
O MongoDB executa o otimizador de query para escolher o plano vencedor para a operação em avaliação. cursor.explain() retorna as informações queryPlanner do método avaliado.
executionStats Modo
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.
cursor.explain() retorna as informações queryPlanner e executionStats do método avaliado. No entanto, o executionStats não fornece informações de execução da query para os planos rejeitados.
allPlansExecution Modo
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.
cursor.explain() retorna as informações de queryPlanner e executionStats para o método avaliado. O executionStats inclui as informações de execução da query concluída 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.
db.collection.explain().find()
db.collection.explain().find() é semelhante ao db.collection.find().explain() com as seguintes diferenças principais:
A construção
db.collection.explain().find()permite o sequenciamento adicional de modificadores de consulta. Para ver a lista de modificadores de consulta, consulte db.collection.explain().find().help().O
db.collection.find().explain()retorna um cursor, que requer uma chamada para.next(), ou seu alias.finish(), para retornar os resultadosexplain(). Se executado interativamente emmongosh,mongoshchama automaticamente.finish()para retornar os resultados. No entanto, para scripts, você deve chamar explicitamente.next()ou.finish()para retornar os resultados. Para ver a lista de métodos relacionados ao cursor, consulte db.collection.explain().find().help().
Consulte db.collection.explain() para mais informações.
Saída
cursor.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; eserverParameters, 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.
Para obter detalhes sobre o resultado, consulte Explicar os resultados.
Exemplo
O exemplo a seguir é executado cursor.explain() no modo de detalhamento "executionStats" para retornar as informações de planejamento e execução da query para a operação de db.collection.find() especificada:
db.products.find( { quantity: { $gt: 50 }, category: "apparel" } ).explain("executionStats")