The $searchMeta stage returns different types of metadata result documents.
Observação
To run $searchMeta queries over sharded collections, your cluster must run MongoDB v6.0 or later.
Compatibilidade
O estágio $searchMeta está disponível nos seguintes ambientes:
MongoDB Enterprise deployments running version 8.2 or later with the Kubernetes Operator.
MongoDB Community deployments running version 8.2 or later
Sintaxe
Um estágio de pipeline do $searchMeta tem a seguinte forma de protótipo:
{ $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
O estágio $searchMeta recebe um documento com os seguintes campos:
Campo | Tipo | necessidade | Descrição |
|---|---|---|---|
| objeto | Condicional | Nome do coletor para utilizar com a query. Você pode fornecer um documento que contenha as opções específicas do coletor como valor para esse campo. O valor deve ser |
| booleano | Opcional | Paralelize a procura entre segmentos em nós de pesquisa dedicados. Se você não tiver nós de pesquisa separados no seu cluster, a Pesquisa MongoDB ignorará esta sinalização. Se omitido, o padrão é |
| objeto | Opcional | Documento que especifica as opções de contagem para recuperar uma contagem dos resultados. Para saber mais, consulte Resultados da pesquisa de contagem do MongoDB. |
| string | Opcional | Nome do índice do MongoDB Search a ser usado. Se omitido, o padrão é A pesquisa do MongoDB não retorna resultados se você digitar incorretamente o nome do índice ou se o índice especificado ainda não existir no cluster. |
| 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 define o contexto da consulta para o campo de documento incorporado especificado. Você também deve especificar |
| booleano | Condicional | Sinalizador que especifica se deve ser realizada uma pesquisa completa de documentos no banco de dados de backend ou retornar apenas os campos de origem armazenados diretamente do MongoDB Search. Se omitido, o padrão é Para saber mais, consulte Devolver campos de origem armazenados. |
Comportamento
The $searchMeta stage must be the first stage in any pipeline.
Tipos de resultados de metadados
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 | Estrutura de resultados |
|---|---|
| O resultado da contagem incluído nos resultados indica se a contagem retornada nos resultados é uma contagem total dos resultados da pesquisa ou um limite inferior. Para saber mais, consulte Contagem de resultados. |
| O resultado de uma query de facet é um mapeamento dos nomes de facets definidos para uma array de compartimentos dessa faceta. Para saber mais, consulte Resultados do facet. |
Exemplo
Suponha o seguinte índice na coleção sample_mflix.movies .
{ "mappings": { "dynamic": false, "fields": { "year": { "type": "number" } } } }
The following query searches for the number of movies released in 1998 using the $searchMeta stage.
db.movies.aggregate([ { "$searchMeta": { "range": { "path": "year", "gte": 1998, "lt": 1999 }, "count": { "type": "total" } } } ])
[ { count: { total: Long("552") } } ]
Solução de problemas
Se você estiver enfrentando problemas com suas queries $search do MongoDB Search, consulte Solucionar problemas de queries.