La query de MongoDB Search devuelve información sobre el plan de la query $search y las estadísticas de ejecución cuando la query se ejecuta con el método explain habilitado. Cuando ejecuta una query con explain, MongoDB Search devuelve un documento BSON que contiene estadísticas y metadatos que describen cómo se ejecutó la query internamente en Lucene.
Tip
Visualiza los planes del query en el Playground
Genera y visualiza explain resúmenes de planes con la Zona de pruebas de búsqueda de MongoDB.
Sintaxis
db.<myCollection>.explain("<verbosity>").aggregate([ { $search: { "<operator>": { "<operator-options>" } } } ])
nivel de verbosidad
El nivel de verbosidad controla el comportamiento de explain y la cantidad de información devuelta. El valor puede ser uno de los siguientes, en orden de menor a mayor nivel de verbosidad:
Información sobre el plan del query, incluyendo los campos | |
Información sobre el plan del query, incluidos los campos | |
queryPlanner (por defecto) | Información sobre el plan del query. No incluye los campos |
Salida
La query con el método explain devuelve los siguientes campos en el objeto stages.$_internalSearchMongotRemote:
Opción | Tipo | Propósito |
|---|---|---|
| Documento | Contiene la consulta que ejecutaste. |
| Documento | Contiene los |
| arreglo de enteros | Contiene el tamaño de cada lote de documentos que |
Explique los resultados
El método explain devuelve un documento BSON con los siguientes campos en el documento explain.
Opción | Tipo | Necesidad | Propósito |
|---|---|---|---|
| Documento | Opcional | Describe las estadísticas de ejecución para el recolector. Si |
| Documento | Opcional | |
| arreglo de documentos | Opcional | Contiene detalles por partición de índices. Esto solo se devuelve si ha configurado dos o más particiones de índice. |
| Documento | Opcional | Contiene metadatos útiles. |
| Documento | Opcional | Describe las estadísticas de ejecución de la query. Esto no se devuelve. Si |
| Documento | Opcional | Detalles relacionados con la recuperación de datos por documento de Lucene después de la ejecución de la query. Esto no se devuelve para el |
| Documento | Opcional | Detalla el uso de recursos de la query cuando se ejecutó. Esto no se devuelve para el nivel de verbosidad |
collectors
El documento collectors BSON contiene los siguientes campos:
Campo | Tipo | Necesidad | Propósito |
|---|---|---|---|
| Documento | Requerido | Estadísticas de todos los recopiladores de la query. Las estadísticas reportadas representan ya sea el valor máximo de todos los colectores utilizados en la query o la suma de la estadística de todos los subcolectores. Las estadísticas de tiempo se suman para reflejar el tiempo total empleado por todos los recopiladores en toda la query. Para aprender más, consulte allCollectorStats. |
| Documento | Opcional | |
| Documento | Opcional | Desglose de la query que especifica ordenación. Para aprender más, consulta |
allCollectorStats
El documento allCollectorStats BSON describe las estadísticas del recopilador en todos los recopiladores especificados en la query, incluidos facet y sort. Contiene las siguientes claves:
Campo | Descripción |
|---|---|
| Rastrea la duración y el número de resultados recogidos por el recolector. |
| Estadísticas que rastrean la duración total y el número de veces que se solicitó un |
| Estadísticas que rastrean la duración total y la cantidad de veces que un anotador fue configurado en el recolector. |
facet
El facet es un BSON documento que detalla las estadísticas de consulta y ejecución cuando se especifica una faceta en la consulta. Contiene los siguientes campos:
Opción | Tipo | Necesidad | Propósito |
|---|---|---|---|
| Documento | Opcional | Muestra estadísticas solo para el recolector |
| Documento | Opcional | Muestra estadísticas relacionadas con la creación del objeto interno de Lucene que contiene todos los agrupamientos de facetas. Contiene el campo |
| Documento | Requerido | Mapea el campo sobre el que se está faceteando a su cardinalidad, tanto en los documentos que coinciden con la query como en todo el índice Lucene. Proporciona la siguiente información de cardinalidad para cada campo:
|
sort
El sort es un BSON que detalla las estadísticas de query y ejecución cuando se especifica una ordenación en la query. Contiene los siguientes campos:
Opción | Tipo | Necesidad | Propósito |
|---|---|---|---|
| Documento | Opcional | Realiza un seguimiento de las estadísticas relacionadas con la
|
| Documento | Requerido | Asocia el campo que se está ordenando con la lista de tipos de datos presentes en el índice para el campo. |
| booleano | Opcional | Indica si la query puede beneficiarse de la ordenación indexada. Una query se beneficia cuando sus campos de ordenación coinciden con la ordenación indexada o forman un prefijo de ella. Si el valor es:
Esto no aparece en la salida si la query no especifica una ordenación o si el índice no tiene una especificación de ordenación. |
highlight
El highlight es un BSON documento que detalla las estadísticas de query y ejecución cuando se especifica el resaltado en la query. Contiene los siguientes campos:
Opción | Tipo | Necesidad | Propósito |
|---|---|---|---|
| Lista<String> | Requerido | Lista de todos los campos resaltados. Si especifica un camino wildcard en la sección |
| QueryExecutionArea | Opcional | Estadísticas de invocación y temporización relacionadas con la configuración y ejecución de destacados. Contiene los siguientes campos:
|
indexPartitionExplain
el indexPartitionExplain contiene Explicar resultados para cada partición de índice. El nivel superior collectors y query están dentro de la información explain de cada partición de índice y ausentes en el nivel superior.
metadata
El metadata contiene metadatos útiles, como los siguientes:
Campo | Tipo | Necesidad | Propósito |
|---|---|---|---|
| String | Opcional | Versión actual de |
| String | Opcional | Etiqueta legible por humanos que identifica el |
| String | Opcional | Índice de MongoDB Search utilizado en la query. |
| Documento | Opcional | Opciones de cursor otorgadas a |
| entero | Opcional | Número total de objetos del índice en el índice, incluidos los documentos eliminados. |
query
El documento query BSON describe las estadísticas de ejecución de la query. Contiene los siguientes campos:
Campo | Tipo | Necesidad | Propósito |
|---|---|---|---|
| string | Opcional | Ruta al operador, solo si no es la raíz. |
| string | Requerido | Nombre de la query Lucene que el operador de MongoDB Search creó. Consulte |
| string | Opcional | Analizador de MongoDB Search utilizado con la query. |
| Documento | Requerido | Información sobre la query de Lucene. Consulta |
| Documento | Opcional |
|
args
La respuesta de explicación de un comando de búsqueda contiene información sobre la query ejecutada con ese comando. La respuesta en el campo args incluye detalles estructurados de las querys que Lucene ejecutó en MongoDB Search para satisfacer una query $search.
Esta sección contiene:
Algunas de las queries Lucene creadas por los operadores de MongoDB Search
Opciones de query de Lucene que se incluyen en el resumen estructurado
Ejemplo de resumen estructurado de consulta Lucene para cada tipo de consulta Lucene
Nota
Sobre los ejemplos
Los ejemplos de esta sección se basan en query ejecutadas en los conjuntos de datos de muestra con el queryPlanner moda de nivel de verbosidad. En la respuesta de ejemplo, el:
mongotQueryEl campo muestra el operador de MongoDB Search y la query que se ejecutó.explain.typeel campo muestra la query de Lucene que creó el operador.
Para ver ejemplos completos, consulta Ejemplos.
BooleanQueryPara Lucene
BooleanQuery, el resumen estructurado incluye detalles sobre las siguientes opciones:CampoTipoNecesidadDescripciónmustOpcional
Cláusulas que deben coincidir.
mustNotOpcional
Cláusulas que no deben coincidir.
shouldOpcional
Cláusulas que deberían coincidir.
filterOpcional
Cláusulas que deben coincidir todas.
minimumShouldMatchentero
Opcional
El número mínimo de
shouldcláusulas que deben coincidir.El siguiente ejemplo muestra la respuesta
explainde una consulta ejecutada en la colecciónsample_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 queries de puntuación constante, el resumen estructurado incluye detalles sobre las siguientes opciones:
CampoTipoNecesidadDescripciónqueryRequerido
Hijo de la
ConstantScoreQuery.El siguiente ejemplo muestra la respuesta
explainde una consulta ejecutada en la colecciónsample_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
FunctionScoreQueryde Lucene, el resumen estructurado incluye detalles sobre las siguientes opciones:CampoTipoNecesidadDescripciónscoreFunctionstring
Requerido
Expresión de puntuación utilizada en la query.
queryRequerido
La query.
El siguiente ejemplo muestra la respuesta
explainde una consulta ejecutada en la colecciónsample_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 }
LatLonPointDistanceQueryPara las query de Lucene
LatLonPointDistanceQuery, la respuesta contiene solo unstats.El siguiente ejemplo muestra la respuesta
explainde una consulta ejecutada en la colecciónsample_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 }
LatLonShapeQueryPara las query de Lucene
LatLonShapeQuery, la respuesta contiene solo unstats.El siguiente ejemplo muestra la respuesta
explainde una consulta ejecutada en la colecciónsample_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 }
LongDistanceFeatureQueryPara Lucene
LongDistanceFeatureQuery, la respuesta contiene solo unstats.El siguiente ejemplo muestra la respuesta
explainde una consulta ejecutada en la colecciónsample_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 las consultas de Lucene
MultiTermQueryConstantScoreWrapper, el resumen estructurado incluye detalles sobre los siguientes argumentos:CampoTipoNecesidadDescripciónqueriesRequerido
Lista de consultas.
El siguiente ejemplo muestra la respuesta
explainde una consulta ejecutada en la colecciónsample_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 las consultas de Lucene
PhraseQuery, el resumen estructurado incluye detalles sobre los siguientes argumentos:CampoTipoNecesidadDescripciónpathString
Requerido
Campo indexado para buscar.
queryString
Requerido
String o strings de búsqueda.
slopNúmero
Requerido
Distancia permitida entre palabras en la frase
query.El siguiente ejemplo muestra la respuesta
explainde una consulta ejecutada en la colecciónsample_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 las consultas de Lucene
PointRangeQuery, el resumen estructurado incluye detalles sobre los siguientes argumentos:CampoTipoNecesidadDescripciónpathString
Requerido
Campo indexado para buscar.
representationString
Opcional
Representación numérica. Las consultas sobre datos de tipo fecha no incluyen representación.
gteNúmero
Opcional
Límite inferior de la query.
lteNúmero
Opcional
Límite superior de la query.
El siguiente ejemplo muestra la respuesta
explainde una consulta ejecutada en la colecciónsample_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 consultas de términos, el resumen estructurado incluye detalles sobre los siguientes argumentos:
CampoTipoNecesidadDescripciónpathString
Requerido
Campo indexado para buscar.
valueString
Requerido
string a buscar.
El siguiente ejemplo muestra la respuesta
explainde una consulta ejecutada en la colecciónsample_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 }
DefaultLas queries de Lucene que no están definidas explícitamente por otra query de Lucene se serializan utilizando la query por defecto. El resumen estructurado incluye detalles sobre las siguientes opciones:
CampoTipoNecesidadDescripciónqueryTypeString
Requerido.
Tipo de query de Lucene.
El siguiente ejemplo muestra la respuesta
explainde una consulta ejecutada en la colecciónsample_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
La respuesta explain para las moda de nivel de verbosidad de executionStats y allPlansExecution incluye un campo stats que contiene información sobre cuánto time dedica una query en las diversas stages of query de ejecución.
Desglose por tiempo
El desglose de temporización describe estadísticas de ejecución pertinentes a una áreas de query ejecución. Los siguientes campos muestran el desglose temporal:
Campo | Tipo | Descripción |
|---|---|---|
| Long | |
| Documento | Número de invocaciones de tareas incluidas en esta área. El valor es un mapa de nombres de tareas a su recuento de invocaciones. |
Áreas de Consulta
Las estadísticas están disponibles para las siguientes áreas de query:
Opción | Descripción | |||||||
|---|---|---|---|---|---|---|---|---|
| Estadísticas relacionadas con la ejecución de la Lucene query. Hay dos tareas cuyos recuentos de convocación se enumeran en esta área:
El tiempo dedicado en esta área está relacionado con la estructura de la query, y no se basa en el número de resultados que se recorren y se puntúan. Por ejemplo: | |||||||
| Estadísticas relacionadas con la iteración y la coincidencia de documentos de resultados. Esta estadística muestra el tiempo que requiere determinar qué documento es la siguiente coincidencia. El tiempo dedicado a comparar resultados puede variar significativamente dependiendo de la naturaleza de la query. En esta área se enumeran dos tareas cuyos recuentos de invocación son:
Por ejemplo: | |||||||
| Estadísticas relacionadas con la puntuación de los documentos en el conjunto de resultados. Hay dos tareas cuyos recuentos de invocación se enumeran en esta área:
Por ejemplo: |
resultMaterialization
El documento resultMaterialization muestra la cantidad de tiempo mongot que se tarda en lograr lo siguiente:
Recupere datos de resultados almacenados en Lucene en forma de
_idostoredSource.Serialice los datos en formato BSON antes de enviarlos a
mongod.
Para aprender más, se puede consultar stats.
resourceUsage
El documento resourceUsage muestra el recurso utilizado para ejecutar la query. Contiene los siguientes campos:
Campo | Tipo | Necesidad | Propósito |
|---|---|---|---|
| Long | Requerido | Número de fallos de página mayores, que ocurren cuando el sistema no puede encontrar los datos requeridos en la memoria, lo que resulta en la lectura desde el almacén de respaldo, como el disco, durante la ejecución de la query. |
| Long | Requerido | Número de fallos menores de página, que ocurren cuando los datos están en la caché de páginas, pero aún no se han mapeado a la tabla de páginas del proceso. |
| Long | Requerido | Cantidad de tiempo de CPU, en milisegundos, pasado en espacio de usuario. |
| Long | Requerido | Cantidad de tiempo de CPU, en milisegundos, utilizado en el espacio del sistema. |
| entero | Requerido | Número máximo de hilos que |
| entero | Requerido | Cantidad total de lotes que se solicitaron |
Ejemplos
Los siguientes ejemplos utilizan la colección movies en la base de datos sample_mflix.
Tip
Si ya ha cargado el conjunto de datos de muestra, consulte el tutorial MongoDB Search Quick Start para crear una definición de índice y ejecutar query de búsqueda de MongoDB Search.
allPlansExecution
El siguiente ejemplo utiliza diferentes operadores para consultar el campo title con el modo allPlansExecution nivel de verbosidad.
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
El siguiente ejemplo utiliza diferentes operadores para consultar el campo title con el modo queryPlanner nivel de verbosidad.
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 } } ])
Para las query que especifican una etapa $limit en el pipeline, los resultados explain incluyen la métrica mongotDocsRequested, que muestra el número de documentos que mongod solicitó de mongot.
Ejemplo
{ "mongotQuery": {}, "explain": {}, "limit": <int>, "sortSpec": {}, "mongotDocsRequested": <int>, }
executionStats
El siguiente ejemplo utiliza el autocompletado para consultar el campo title con el executionStats modo nivel de verbosidad.
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 obtener más información sobre los elementos de respuesta de explain, consulta Explicar resultados.