La $searchMeta stage returns different types of metadata result documents.
Nota
Para ejecutar $searchMeta consultas en colecciones particionadas, tu clúster debe ejecutar MongoDB v6.0 o posterior.
Compatibilidad
The $searchMeta stage is available in the following environments:
MongoDB Enterprise deployments running version 8.2 or later with the Kubernetes Operator.
MongoDB Community implementaciones que ejecutan la versión 8.2 o posterior
Sintaxis
Una etapa de pipeline $searchMeta tiene la siguiente forma de prototipo:
{ $searchMeta: { "index": "<index-name>", "<collector-name>"|"<operator-name>": { <collector-specification>|<operator-specification> }, "concurrent": true | false, "count": { <count-options> }, "returnScope": { "path": "<embedded-documents-field-to-retrieve>" } "returnStoredSource": true | false } }
Campos
La etapa $searchMeta procesa un documento con los siguientes campos:
Campo | Tipo | Necesidad | Descripción |
|---|---|---|---|
| Objeto | Condicional | Nombre del collector to use with the query. You can provide a document that contains the collector-specific options as the value for this field. Value must be |
| booleano | Opcional | Paralelice la búsqueda entre segmentos en nodos de búsqueda dedicados. Si no tiene nodos de búsqueda separados en su clúster, la búsqueda de MongoDB ignora ese indicador. Si se omite, es por defecto |
| Objeto | Opcional | Documento que especifica las opciones de conteo para obtener un conteo de los resultados. Para obtener más información, consulte Conteo de los resultados de la búsqueda de MongoDB. |
| string | Opcional | Nombre del índice de búsqueda de MongoDB que se utilizará. Si se omite, es por defecto La búsqueda de MongoDB no devuelve resultados si escribe mal el nombre del índice o si el índice especificado no existe en el clúster. |
| Objeto | Condicional | Name of the operator to search with. You can provide a document that contains the operator-specific options as the value for this field. You must specify this or |
| Objeto | Opcional | Objeto que establece el contexto de la query en el campo de documento incrustado especificado. También debe especificar |
| booleano | Condicional | Flag that specifies whether to perform a full document lookup on the backend database or return only stored source fields directly from MongoDB Search. If omitted, defaults to Para obtener más información, consulta Devolver los campos de origen almacenados. |
Comportamiento
La etapa $searchMeta debe ser la primera etapa en cualquier pipeline.
Tipos de resultados de metadatos
The structure of the metadata results document that is returned by the $searchMeta stage varies based on the type of results. MongoDB Search supports the following result types:
Tipo | Estructura de resultados |
|---|---|
| El resultado de recuento incluido en los resultados indica si el recuento devuelto en los resultados es un recuento total de los resultados de búsqueda, o un límite inferior. Para obtener más información, consulta Contar resultados. |
| El resultado de una query de facetas es un mapeo de los nombres de facetas definidos a un arreglo de buckets para esa faceta. Para obtener más información, consulte Resultados de la Faceta. |
Ejemplo
Supón el siguiente índice en la colección sample_mflix.movies.
{ "mappings": { "dynamic": false, "fields": { "year": { "type": "number" } } } }
La siguiente query busca el número de películas estrenadas en 1998 utilizando la etapa $searchMeta.
db.movies.aggregate([ { "$searchMeta": { "range": { "path": "year", "gte": 1998, "lt": 1999 }, "count": { "type": "total" } } } ])
[ { count: { total: Long("552") } } ]
Solución de problemas
If you are experiencing issues with your MongoDB Search $search queries, see Troubleshoot Queries.