A query do MongoDB Search retorna informações sobre o plano de query $search e as estatísticas de execução quando a query é executada com o método explain ativado. Quando você executa uma query com explain, o MongoDB Search retorna um documento BSON contendo estatísticas e metadados que descrevem como a query foi executada internamente no Lucene.
Dica
Dica
Visualizar planos de query no playground
Gere e visualize resumos de planos explain com o MongoDB Search Playground.
Sintaxe
db.<myCollection>.explain("<verbosity>").aggregate([ { $search: { "<operator>": { "<operator-options>" } } } ])
Detalhamento
O modo Verbosidade controla o comportamento do explain e a quantidade de informações retornadas. O valor pode ser um dos seguintes, em ordem decrescente de verbosidade:
Informações sobre o plano de query , incluindo os campos | |
Informações sobre o plano de query, incluindo os campos | |
queryPlanner (padrão) | Informações sobre o plano de query. Não inclui os campos |
Saída
A query com o método explain retorna os seguintes campos no objeto stages.$_internalSearchMongotRemote:
Opção | Tipo | Propósito |
|---|---|---|
| documento | Contém a query que você executou. |
| documento | Contains the |
| array de números inteiros | Contém o tamanho de cada lote de documentos que |
Explicação de resultados
O método explain retorna um documento BSON com os seguintes campos no documento explain.
Opção | Tipo | necessidade | Propósito |
|---|---|---|---|
| documento | Opcional | Descreve as estatísticas de execução do coletor. Se |
| documento | Opcional | |
| matriz de documentos | Opcional | Contém detalhes por partição de índice. Isso é retornado apenas se você tiver configurado duas ou mais partições de índice. |
| documento | Opcional | Contém metadados úteis. |
| documento | Opcional | Descreve as estatísticas de execução da query. Não é retornado. Se |
| documento | Opcional | Detalhes sobre a recuperação de dados por documento do Lucene após a execução da query. Isso não é retornado para o modo de detalhamento |
| documento | Opcional | Detalha o uso de recursos da query quando ela foi executada. Isso não é retornado para o modo de detalhamento |
collectors
O documento BSON collectors contém os seguintes campos:
Campo | Tipo | necessidade | Propósito |
|---|---|---|---|
| documento | Obrigatório | Statistics of all collectors of the query. Statistics reported represent either the maximum value across all collectors used in the query or a sum of the statistic across all the sub-collectors. The timing statistics are summed to reflect the total time spent across all collectors for the entire query. To learn more, see allCollectorStats. |
| documento | Opcional | |
| documento | Opcional |
allCollectorStats
O documento BSON allCollectorStats descreve as estatísticas dos coletores em todos os coletores especificados na consulta, incluindo facet e sort. Ele contém as seguintes chaves:
Campo | Descrição |
|---|---|
| Acompanha a duração e o número de resultados coletados pelo coletor. |
| Estatísticas que rastreiam a duração total e o número de vezes que um |
| Estatísticas que monitoram a duração total e o número de vezes que um pontuador foi configurado no coletor. |
facet
O facet é um documento BSON que detalha estatísticas de consulta e execução quando você especifica uma faceta na consulta. Ele contém os seguintes campos:
Opção | Tipo | necessidade | Propósito |
|---|---|---|---|
| documento | Opcional | Exibe estatísticas apenas para o coletor |
| documento | Opcional | Exibe estatísticas relacionadas à criação do objeto interno do Lucene que contém todos os agrupamentos de facetas. Ele contém o campo |
| documento | Obrigatório | Mapeia o campo que está sendo facetado para suas cardinalidades tanto nos documentos que corresponderam à query quanto em todo o índice do Lucene. Ele fornece as seguintes informações de cardinalidade para cada campo:
|
sort
O sort é um documento BSON que detalha as estatísticas de query e execução quando você especifica uma ordenação na query. Ele contém os seguintes campos:
Opção | Tipo | necessidade | Propósito |
|---|---|---|---|
| documento | Opcional | Acompanha estatísticas relacionadas à execução de
|
| documento | Obrigatório | Mapeia o campo que está sendo ordenado para a lista de tipos de dados presentes no índice para o campo. |
| booleano | Opcional | Indica se a query pode se beneficiar da ordenação indexada. Uma query se beneficia quando seus campos de ordenação correspondem à ordenação indexada ou formam um prefixo dela. Se o valor for:
Isso está ausente na saída se a query não especificar uma classificação ou se o índice não tiver uma especificação de classificação. |
highlight
O highlight é um documento BSON que detalha estatísticas de consulta e execução quando você especifica realce na consulta. Ele contém os seguintes campos:
Opção | Tipo | necessidade | Propósito |
|---|---|---|---|
| List<String> | Obrigatório | Lista de todos os campos realçados. Se você especificou um caminho curinga na seção |
| Área de Execução de Consulta | Opcional | Estatísticas de invocação e temporização relacionadas à configuração e execução de destaques. Ele contém os seguintes campos:
|
indexPartitionExplain
the indexPartitionExplain contains Explain Results for each index partition. The top-level collectors and query are inside the explain information of each index partition and absent at the top-level.
metadata
O metadata contém metadados úteis, como os seguintes:
Campo | Tipo | necessidade | Propósito |
|---|---|---|---|
| String | Opcional | Versão atual de |
| String | Opcional | Etiqueta legível por humanos que identifica o host |
| String | Opcional | Índice de pesquisa do MongoDB usado na query. |
| Documento | Opcional | Opções de cursor dadas a |
| Inteiro | Opcional | Número total de objetos de índice no índice, incluindo documentos excluídos. |
query
O documento BSON query descreve as estatísticas de execução da query. Ele contém os seguintes campos:
Campo | Tipo | necessidade | Propósito |
|---|---|---|---|
| string | Opcional | Caminho para o operador, somente se não for a raiz. |
| string | Obrigatório | Nome da query Lucene que o operador do MongoDB Search criou. Consulte |
| string | Opcional | O analisador MongoDB Search usado com a query. |
| documento | Obrigatório | Informações sobre a query do Lucene. Consulte |
| documento | Opcional |
|
args
The explain response of a search command contains information about the query executed with that command. The response in the args field includes structured details of what Lucene queries MongoDB Search executed to satisfy a $search query.
Esta seção contém:
Algumas das queries do Lucene que os operadores do MongoDB Search criam
Opções de query do Lucene incluídas no resumo estruturado
Exemplo de resumo estruturado da query Lucene para cada tipo de query Lucene
Observação
Sobre os exemplos
The examples in this section are based on queries run against the sample datasets with the queryPlanner verbosity mode. In the example response, the:
mongotQueryo campo mostra o operador MongoDB Search e a query que foi executada.explain.typemostra a query Lucene que o operador criou.
Para exemplos completos, consulte Exemplos.
BooleanQueryPara Lucene
BooleanQuery, o resumo estruturado inclui detalhes sobre as seguintes opções:CampoTiponecessidadeDescriçãomustOpcional
Cláusulas que devem corresponder.
mustNotOpcional
Cláusulas que não devem corresponder.
shouldOpcional
Cláusulas que deveriam corresponder.
filterOpcional
Cláusulas que deveriam corresponder.
minimumShouldMatchInteiro
Opcional
O número mínimo de
shouldcláusulas que devem corresponder.O exemplo a seguir mostra a resposta
explainpara uma query executada na coleçãosample_airbnb.listingsAndReviews.1 { 2 "stages" : [ 3 { 4 "$_internalSearchMongotRemote" : { 5 "mongotQuery" : { 6 "compound" : { 7 "must" : [ { 8 "compound" : { 9 "should" : [ { 10 "text" : { 11 "query" : "historic", 12 "path" : "summary" 13 } 14 }, 15 { 16 "text" : { 17 "query" : "Portugal", 18 "path" : "address.country" 19 } 20 }, 21 { 22 "text" : { 23 "query" : "railway", 24 "path" : "transit" 25 } 26 } ] 27 } 28 } ], 29 "mustNot" : [ { 30 "text" : { 31 "query" : "Apartment", 32 "path" : "property_type" 33 } 34 } ] 35 } 36 }, 37 "explain" : { 38 "type" : "BooleanQuery", 39 "args" : { 40 "must" : [ { 41 "path" : "compound.must", 42 "type" : "BooleanQuery", 43 "args" : { 44 "must" : [ ], 45 "mustNot" : [ ], 46 "should" : [ 47 { 48 "path" : "compound.must.compound.should[0]", 49 "type" : "TermQuery", 50 "args" : { 51 "path" : "summary", 52 "value" : "historic" 53 } 54 }, 55 { 56 "path" : "compound.must.compound.should[1]", 57 "type" : "TermQuery", 58 "args" : { 59 "path" : "address.country", 60 "value" : "portugal" 61 } 62 }, 63 { 64 "path" : "compound.must.compound.should[2]", 65 "type" : "TermQuery", 66 "args" : { 67 "path" : "transit", 68 "value" : "railway" 69 } 70 } 71 ], 72 "filter" : [ ], 73 "minimumShouldMatch" : 0 74 } 75 } ], 76 "mustNot" : [ { 77 "path" : "compound.mustNot", 78 "type" : "TermQuery", 79 "args" : { 80 "path" : "property_type", 81 "value" : "apartment" 82 } 83 } ], 84 "should" : [ ], 85 "filter" : [ ], 86 "minimumShouldMatch" : 0 87 } 88 } 89 }, 90 ... 91 }, 92 ... 93 ], 94 ... 95 }
ConstantScoreQueryPara consultas de pontuação constantes, o resumo estruturado inclui detalhes sobre as seguintes opções:
CampoTiponecessidadeDescriçãoqueryObrigatório
Filho de
ConstantScoreQuery.O exemplo a seguir mostra a resposta
explainpara uma query executada na coleçãosample_airbnb.listingsAndReviews.1 { 2 "stages" : [ 3 { 4 "$_internalSearchMongotRemote" : { 5 "mongotQuery" : { 6 "equals" : { 7 "path" : "host.host_identity_verified", 8 "value" : true 9 } 10 }, 11 "explain" : { 12 "type" : "ConstantScoreQuery", 13 "args" : { 14 "query" : { 15 "type" : "TermQuery", 16 "args" : { 17 "path" : "host.host_identity_verified", 18 "value" : "T" 19 } 20 } 21 } 22 } 23 } 24 }, 25 { 26 "$_internalSearchIdLookup" : { } 27 } 28 ], 29 ... 30 }
FunctionScoreQueryPara consultas do Lucene
FunctionScoreQuery, o resumo estruturado inclui detalhes sobre as seguintes opções:CampoTiponecessidadeDescriçãoscoreFunctionstring
Obrigatório
Expressão de pontuação usada na consulta.
queryObrigatório
A consulta.
O exemplo a seguir mostra a resposta
explainpara uma query executada na coleçãosample_airbnb.listingsAndReviews.1 { 2 "stages" : [ 3 { 4 "$_internalSearchMongotRemote" : { 5 "mongotQuery" : { 6 "near" : { 7 "path" : "accomodates", 8 "origin" : 8, 9 "pivot" : 2 10 } 11 }, 12 "explain" : { 13 "type" : "BooleanQuery", 14 "args" : { 15 "must" : [ ], 16 "mustNot" : [ ], 17 "should" : [ 18 { 19 "type" : "BooleanQuery", 20 "args" : { 21 "must" : [ ], 22 "mustNot" : [ ], 23 "should" : [ 24 { 25 "type" : "FunctionScoreQuery", 26 "args" : { 27 "scoreFunction" : "expr(pivot / (pivot + abs(origin - value)))", 28 "query" : { 29 "type" : "LongDistanceFeatureQuery", 30 "args" : { }, 31 "stats" : { } 32 } 33 } 34 } 35 ], 36 "filter" : [ 37 { 38 "type" : "PointRangeQuery", 39 "args" : { 40 "path" : "accomodates", 41 "representation" : "double", 42 "gte" : 8.000000000000002, 43 "lte" : NaN 44 } 45 } 46 ], 47 "minimumShouldMatch" : 0 48 } 49 }, 50 { 51 "type" : "LongDistanceFeatureQuery", 52 "args" : { }, 53 "stats" : { } 54 } 55 ], 56 "filter" : [ ], 57 "minimumShouldMatch" : 0 58 } 59 } 60 }, 61 ... 62 }, 63 ... 64 ], 65 ... 66 }
LatLonPointDistanceQueryFor Lucene
LatLonPointDistanceQueryqueries, the response contains anstatsonly.O exemplo a seguir mostra a resposta
explainpara uma query executada na coleçãosample_airbnb.listingsAndReviews.1 { 2 "stages" : [ 3 { 4 "$_internalSearchMongotRemote" : { 5 "mongotQuery" : { 6 "geoWithin" : { 7 "path" : "address.location", 8 "circle" : { 9 "radius" : 4800, 10 "center" : { 11 "type" : "Point", 12 "coordinates" : [ 13 -122.419472, 14 37.765302 15 ] 16 } 17 } 18 } 19 }, 20 "explain" : { 21 "type" : "LatLonPointDistanceQuery", 22 "args" : { } 23 } 24 } 25 }, 26 ... 27 ], 28 ... 29 }
LatLonShapeQueryFor Lucene
LatLonShapeQueryqueries, the response contains anstatsonly.O exemplo a seguir mostra a resposta
explainpara uma query executada na coleçãosample_airbnb.listingsAndReviews.1 { 2 "stages" : [ 3 { 4 "$_internalSearchMongotRemote" : { 5 "mongotQuery" : { 6 "geoShape" : { 7 "path" : "address.location", 8 "relation" : "within", 9 "geometry" : { 10 "type" : "Polygon", 11 "coordinates" : [ 12 [ 13 [ -74.3994140625, 40.5305017757 ], 14 [ -74.7290039063, 40.5805846641 ], 15 [ -74.7729492188, 40.9467136651 ], 16 [ -74.0698242188, 41.1290213475 ], 17 [ -73.65234375, 40.9964840144 ], 18 [ -72.6416015625, 40.9467136651 ], 19 [ -72.3559570313, 40.7971774152 ], 20 [ -74.3994140625, 40.5305017757 ] 21 ] 22 ] 23 } 24 } 25 }, 26 "explain" : { 27 "type" : "LatLonShapeQuery", 28 "args" : { } 29 } 30 }, 31 ... 32 }, 33 ... 34 ], 35 ... 36 }
LongDistanceFeatureQueryFor Lucene
LongDistanceFeatureQuery, the response contains anstatsonly.O exemplo a seguir mostra a resposta
explainpara uma query executada na coleçãosample_mflix.movies.1 { 2 "stages" : [ 3 { 4 "$_internalSearchMongotRemote" : { 5 "mongotQuery" : { 6 "near" : { 7 "path" : "released", 8 "origin" : ISODate("1915-09-13T00:00:00Z"), 9 "pivot" : 7776000000 10 } 11 }, 12 "explain" : { 13 "type" : "LongDistanceFeatureQuery", 14 "args" : { } 15 } 16 }, 17 ... 18 }, 19 ... 20 ], 21 ... 22 }
MultiTermQueryConstantScoreWrapperPara consultas do Lucene
MultiTermQueryConstantScoreWrapper, o resumo estruturado inclui detalhes sobre os seguintes argumentos:CampoTiponecessidadeDescriçãoqueriesList<Explain Results>
Obrigatório
Lista de consultas.
O exemplo a seguir mostra a resposta
explainpara uma query executada na coleçãosample_airbnb.listingsAndReviews.1 { 2 "stages" : [ 3 { 4 "$_internalSearchMongotRemote" : { 5 "mongotQuery" : { 6 "regex" : { 7 "path" : "access", 8 "query" : "full(.{0,5})", 9 "allowAnalyzedField" : true 10 } 11 }, 12 "explain" : { 13 "type" : "MultiTermQueryConstantScoreWrapper", 14 "args" : { 15 "queries" : [ 16 { 17 "type" : "DefaultQuery", 18 "args" : { 19 "queryType" : "RegexpQuery" 20 } 21 } 22 ] 23 } 24 } 25 }, 26 ... 27 }, 28 ... 29 ], 30 ... 31 }
PhraseQueryPara consultas do Lucene
PhraseQuery, o resumo estruturado inclui detalhes sobre os seguintes argumentos:CampoTiponecessidadeDescriçãopathString
Obrigatório
Campo indexado para pesquisar.
queryString
Obrigatório
String ou strings para pesquisar.
slopNúmero
Obrigatório
Distância permitida entre palavras na frase
query.O exemplo a seguir mostra a resposta
explainpara uma query executada na coleçãosample_airbnb.listingsAndReviews.1 { 2 "stages" : [ 3 { 4 "$_internalSearchMongotRemote" : { 5 "mongotQuery" : { 6 "phrase" : { 7 "path" : "description", 8 "query" : "comfortable apartment", 9 "slop" : 2 10 } 11 }, 12 "explain" : { 13 "type" : "PhraseQuery", 14 "args" : { 15 "path" : "description", 16 "query" : "[comfortable, apartment]", 17 "slop" : 2 18 } 19 } 20 }, 21 ... 22 }, 23 ... 24 ], 25 ... 26 }
PointRangeQueryPara consultas do Lucene
PointRangeQuery, o resumo estruturado inclui detalhes sobre os seguintes argumentos:CampoTiponecessidadeDescriçãopathString
Obrigatório
Campo indexado para pesquisar.
representationString
Opcional
Representação numérica. Queries sobre dados classificados por data não incluem representação.
gteNúmero
Opcional
Limite inferior da consulta.
lteNúmero
Opcional
Limite superior da consulta.
O exemplo a seguir mostra a resposta
explainpara uma query executada na coleçãosample_airbnb.listingsAndReviews.1 { 2 "stages" : [ 3 { 4 "$_internalSearchMongotRemote" : { 5 "mongotQuery" : { 6 "range" : { 7 "path" : "number_of_reviews", 8 "gt" : 5 9 } 10 }, 11 "explain" : { 12 "type" : "BooleanQuery", 13 "args" : { 14 "must" : [ ], 15 "mustNot" : [ ], 16 "should" : [ 17 { 18 "type" : "PointRangeQuery", 19 "args" : { 20 "path" : "number_of_reviews", 21 "representation" : "double", 22 "gte" : 5.000000000000001 23 } 24 }, 25 { 26 "type" : "PointRangeQuery", 27 "args" : { 28 "path" : "number_of_reviews", 29 "representation" : "int64", 30 "gte" : NumberLong(6) 31 } 32 } 33 ], 34 "filter" : [ ], 35 "minimumShouldMatch" : 0 36 } 37 } 38 }, 39 ... 40 }, 41 ... 42 ], 43 ... 44 }
TermQueryPara queries de termo, o resumo estruturado inclui detalhes sobre os seguintes argumentos:
CampoTiponecessidadeDescriçãopathString
Obrigatório
Campo indexado para pesquisar.
valueString
Obrigatório
String a ser pesquisada.
O exemplo a seguir mostra a resposta
explainpara uma query executada na coleçãosample_airbnb.listingsAndReviews.1 { 2 "stages" : [ 3 { 4 "$_internalSearchMongotRemote" : { 5 "mongotQuery" : { 6 "queryString" : { 7 "defaultPath" : "summary", 8 "query" : "quiet" 9 } 10 }, 11 "explain" : { 12 "type" : "TermQuery", 13 "args" : { 14 "path" : "summary", 15 "value" : "quiet" 16 } 17 } 18 }, 19 ... 20 }, 21 ... 22 ], 23 ... 24 }
DefaultQueries Lucene que não são explicitamente definidas por outra query Lucene são serializadas utilizando a query padrão. O resumo estruturado inclui detalhes sobre a seguinte opção:
CampoTiponecessidadeDescriçãoqueryTypeString
Obrigatório.
Tipo de consulta Lucene.
O exemplo a seguir mostra a resposta
explainpara uma query executada na coleçãosample_airbnb.listingsAndReviews.1 { 2 "stages" : [ 3 { 4 "$_internalSearchMongotRemote" : { 5 "mongotQuery" : { 6 "near" : { 7 "origin" : { 8 "type" : "Point", 9 "coordinates" : [ 10 -8.61308, 11 41.1413 12 ] 13 }, 14 "pivot" : 1000, 15 "path" : "address.location" 16 } 17 }, 18 "explain" : { 19 "type" : "DefaultQuery", 20 "args" : { 21 "queryType" : "LatLonPointDistanceFeatureQuery" 22 } 23 } 24 }, 25 ... 26 }, 27 ... 28 ], 29 ... 30 }
stats
The explain response for executionStats and allPlansExecution verbosity modes includes a stats field that contains information on how much time a query spends in various stages of query execution.
Detalhamento do tempo
O detalhamento do tempo descreve as estatísticas de execução pertinentes a áreas de execução da query. Os campos a seguir mostram o detalhamento do tempo:
Campo | Tipo | Descrição |
|---|---|---|
| Long | |
| Documento | Number of invocations of tasks included in this area. The value is a map of task names to their invocation count. |
Áreas de query
As estatísticas estão disponíveis para as seguintes áreas de query:
Opção | Descrição | |||||||
|---|---|---|---|---|---|---|---|---|
| Estatísticas relacionadas à execução da query Lucene. Há duas tarefas cujas contagens de invocação são enumeradas nesta área:
The time spent in this area is related to the structure of the query, and is not based on the number of results that are iterated through and scored. Por exemplo: | |||||||
| Estatísticas relacionadas à iteração e à correspondência de documentos de resultados. Essa estatística mostra o tempo necessário para determinar qual documento é a próxima correspondência. O tempo gasto na correspondência de resultados pode variar significativamente, dependendo da natureza da query. Há duas tarefas cujas contagens de invocação são enumeradas nesta área:
Por exemplo: | |||||||
| Estatísticas relacionadas à pontuação de documentos no conjunto de resultados. Há duas tarefas cujas contagens de invocação são enumeradas nesta área:
Por exemplo: |
resultMaterialization
O documento resultMaterialization mostra o tempo que mongot leva para realizar o seguinte:
Recupere os dados de resultados armazenados no Lucene no formato de
_idoustoredSource.Serialize os dados no formato BSON antes de enviá-los para
mongod.
To learn more, see stats.
resourceUsage
O documento resourceUsage mostra o recurso utilizado para executar a query. Ele contém os seguintes campos:
Campo | Tipo | necessidade | Propósito |
|---|---|---|---|
| Long | Obrigatório | Número de falhas de página principais, que ocorrem quando o sistema não consegue encontrar os dados necessários na memória, resultando na leitura do armazenamento de apoio, como disco, durante a execução da query. |
| Long | Obrigatório | Número de falhas de página menores, que ocorrem quando os dados estão no cache de página, mas ainda não foram mapeados para a tabela de páginas do processo. |
| Long | Obrigatório | Tempo da CPU, em milissegundos, gasto no espaço do usuário. |
| Long | Obrigatório | Tempo da CPU, em milissegundos, gasto no espaço do sistema. |
| Inteiro | Obrigatório | Número máximo de threads que |
| Inteiro | Obrigatório | Número total de lotes que |
Exemplos
Os exemplos seguintes utilizam a collection movies no banco de dados sample_mflix.
Dica
If you've already loaded the sample dataset, refer to the MongoDB Search Quick Start tutorial to create an index definition and run MongoDB Search queries.
allPlansExecution
O exemplo a seguir usa diferentes operadores para executar uma query no campo title com o modo de detalhamento allPlansExecution.
db.movies.explain("allPlansExecution").aggregate([ { $search: { "text": { "path": "title", "query": "yark", "fuzzy": { "maxEdits": 1, "maxExpansions": 100, } } } } ])
db.movies.explain("allPlansExecution").aggregate([ { $search: { "text": { "path": "title", "query": "prince" }, "highlight": { "path": "title", "maxNumPassages": 1, "maxCharsToExamine": 40 } } }, { $project: { "description": 1, "_id": 0, "highlights": { "$meta": "searchHighlights" } } } ])
db.movies.explain("allPlansExecution").aggregate([ { "$searchMeta": { "facet": { "operator": { "near": { "path": "released", "origin": ISODate("1921-11-01T00:00:00.000+00:00"), "pivot": 7776000000 } }, "facets": { "genresFacet": { "type": "string", "path": "genres" }, "yearFacet" : { "type" : "number", "path" : "year", "boundaries" : [1910,1920,1930,1940] } } } } } ])
db.movies.explain("allPlansExecution").aggregate([ { $search: { "text": { "path": "title", "query": "yark", "fuzzy": { "maxEdits": 1, "maxExpansions": 100, } } } } ])
queryPlanner
O exemplo a seguir usa diferentes operadores para executar uma query no campo title com o modo de detalhamento queryPlanner.
db.movies.explain("queryPlanner").aggregate([ { $search: { "text": { "path": "title", "query": "yark", "fuzzy": { "maxEdits": 1, "maxExpansions": 100, } } } } ])
db.movies.explain("queryPlanner").aggregate([ { $search: { "text": { "path": "title", "query": "prince" }, "highlight": { "path": "title", "maxNumPassages": 1, "maxCharsToExamine": 40 } } }, { $project: { "description": 1, "_id": 0, "highlights": { "$meta": "searchHighlights" } } } ])
db.movies.explain("queryPlanner").aggregate([ { "$searchMeta": { "facet": { "operator": { "near": { "path": "released", "origin": ISODate("1921-11-01T00:00:00.000+00:00"), "pivot": 7776000000 } }, "facets": { "genresFacet": { "type": "string", "path": "genres" }, "yearFacet" : { "type" : "number", "path" : "year", "boundaries" : [1910,1920,1930,1940] } } } } } ])
db.movies.explain("queryPlanner").aggregate([ { $search: { index: "default", range: { path: "released", gt: ISODate("2015-01-01T00:00:00.000Z"), lt: ISODate("2015-12-31T00:00:00.000Z") }, sort: { released: -1 } } }, { $limit: 5 }, { $project: { _id: 0, title: 1, released: 1 } } ])
For queries that specify a $limit stage in the pipeline, the explain results include the mongotDocsRequested metric, which shows the number of documents that mongod requested from mongot.
Exemplo
{ "mongotQuery": {}, "explain": {}, "limit": <int>, "sortSpec": {}, "mongotDocsRequested": <int>, }
executionStats
The following example uses the autocomplete to query the title field with the executionStats verbosity mode.
1 db.movies.explain("executionStats").aggregate([ 2 { 3 "$search": { 4 "autocomplete": { 5 "path": "title", 6 "query": "pre", 7 "fuzzy": { 8 "maxEdits": 1, 9 "prefixLength": 1, 10 "maxExpansions": 256 11 } 12 } 13 } 14 } 15 ])
Para aprender mais sobre os elementos de resposta explain, consulte Explicar resultados.