$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 |
---|---|---|---|
<collector-name> | 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 facet para recuperar um mapeamento dos nomes das facetas definidas para uma array de compartimentos para essa faceta. Para saber mais, consulte faceta. Você deve especificar isso ou <operator-name> . |
count | 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. |
index | 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. |
<operator-name> | objeto | Condicional | Nome do operador com o qual pesquisar. Você pode fornecer um documento contendo as opções específicas do operador como valor do campo. Você deve especificar isso ou <collector-name> . $searchMeta retorna somente os count metadados-padrão. |
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 |
---|---|
count | 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. |
facet | 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.