Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

$searchMeta

$searchMeta

La etapa $searchMeta devuelve diferentes documentos de tipos de resultados de metadatos.

Nota

Para ejecutar $searchMeta consultas en colecciones particionadas, tu clúster debe ejecutar MongoDB v6.0 o posterior.

El escenario $searchMeta está disponible en los siguientes entornos:

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
}
}

La etapa $searchMeta procesa un documento con los siguientes campos:

Campo
Tipo
Necesidad
Descripción

<collector-name>

Objeto

Condicional

Nombre del recolector que se utilizará en la query. Puede proporcionar un documento que contenga las opciones específicas del recolector como el valor para este campo. El valor debe ser facet para recuperar un mapeo de los nombres de facetas definidos a un arreglo de buckets para esa faceta. Para más información, consulte facet (Operador de búsqueda de MongoDB). Debe especificar esto o <operator-name>.

concurrent

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 false. Para aprender más, consulte Paralelización de la ejecución de queries entre segmentos.

count

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.

index

string

Opcional

Nombre del índice de búsqueda de MongoDB que se utilizará. Si se omite, es por defecto default.

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.

<operator-name>

Objeto

Condicional

Nombre del operador para la búsqueda. Puede proporcionar un documento que contenga las opciones específicas del operador como el valor de este campo. Debe especificar esto o <collector-name>. $searchMeta devuelve solo los metadatos count por defecto.

returnScope

Objeto

Opcional

Objeto que establece el contexto de la query en el campo de documento incrustado especificado. También debe especificar returnStoredSource y configurarlo en true si la versión de su clúster de MongoDB es inferior a 8.2.

returnStoredSource

booleano

Condicional

Indicador que especifica si se debe realizar una búsqueda completa de documentos en la base de datos de backend o devolver solo los campos de origen almacenados directamente desde MongoDB Search. Si se omite, es por defecto false. Debe ser true si especifica returnScope y la versión de MongoDB del clúster es inferior a 8.2.

Para obtener más información, consulta Devolver los campos de origen almacenados.

La etapa $searchMeta debe ser la primera etapa en cualquier pipeline.

La estructura del documento de resultados de metadatos que se devuelve en la etapa $searchMeta varía según el tipo de resultados. MongoDB Search soporta los siguientes tipos de resultados:

Tipo
Estructura de resultados

count

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.

facet

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.

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") } } ]

Si se están experimentando problemas con las queries de MongoDB Search $search, se puede consultar Solucionar problemas de queries.