$searchMeta
O estágio $searchMeta
retorna diferentes tipos de documentos de resultados de metadados .
Observação
Para executar queries do $searchMeta
em coleções fragmentadas, seu cluster deve executar MongoDB v6.0 ou posterior.
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> }, "count": { <count-options> } } }
Campos
O estágio $searchMeta
recebe um documento com os seguintes campos:
Campo | Tipo | necessidade | Descrição |
---|---|---|---|
| objeto | Condicional | Nome do coletor a ser usado 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 |
| objeto | Opcional | Documento que especifica as opções de contagem para recuperar uma contagem dos resultados. Para mais informações, consulte Resultados de contagem do Atlas Search. |
| string | Opcional | Nome do índice do Atlas Search a ser usado. Se omitido, o padrão é Atlas Search 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 |
Comportamento
O estágio $searchMeta
deve ser o primeiro estágio em qualquer pipeline.
Tipos de resultados de metadados
A estrutura do documento de resultados de metadados que é retornado pelo estágio $searchMeta
varia de acordo com o tipo de resultados. O Atlas Search é compatível com os seguintes tipos de resultados:
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" } } } }
A consulta a seguir pesquisa o número de filmes lançados em 1998 usando o estágio $searchMeta
.
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
no Atlas Search, consulte Como solucionar erros no Atlas Search.