Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.

exists ( Operador de pesquisa MongoDB )

exists

O operador exists testa se existe um caminho para um nome de campo indexado especificado em um documento. Se o campo especificado existir, mas não estiver indexado, o documento não será incluído nos resultados. exists costuma ser utilizado como parte de uma query composta em conjunto com outras cláusulas de pesquisa.

exists tem a seguinte sintaxe:

{ $search: { "index": <index name>, // optional, defaults to "default" "exists": { "path": "<field-to-test-for>", "score": <options> } }}

exists usa os seguintes termos para construir uma consulta:

Campo
Tipo
Descrição
Obrigatório?

path

string

Campo indexado para pesquisar.

sim

score

objeto

Pontuação a ser atribuída aos resultados de pesquisa correspondentes. Para saber mais sobre as opções para modificar a pontuação padrão, consulte Pontuação dos documentos nos resultados.

no

O MongoDB Search atribui uma pontuaçãoconstant de 1 para todos os documentos nos resultados. Você pode personalizar a pontuação padrão do MongoDB Search usando as opções score. Para saber mais sobre como modificar a pontuação padrão retornada pela MongoDB Search, consulte Modificar a pontuação.

Você pode tentar os exemplos a seguir no MongoDB Search Playground ou em seu cluster.

Os exemplos nesta página usam uma collection chamada fruit que contém os seguintes documentos:

{ "_id" : 1, "type" : "apple", "description" : "Apples come in several varieties, including Fuji, Granny Smith, and Honeycrisp."},{ "_id" : 2, "type" : "banana", "description" : "Bananas are usually sold in bunches of five or six."},{ "_id" : 3, "type": "apple", "description" : "Apple pie and apple cobbler are popular apple-based desserts."},{ "_id" : 4, "description" : "Types of citrus fruit include lemons, oranges, and grapefruit.", "quantities" : { "lemons": 200, "oranges": 240, "grapefruit": 160 }}

A coleção fruit tem um índice dinâmico padrão do MongoDB Search que usa o analisador padrão. O analisador standard coloca todas as palavras em letras minúsculas e desconsidera as palavras de parada comuns ("the", "a", "and", etc.).

As seguintes queries demonstram o operador exists nas queries do MongoDB Search.

O exemplo a seguir pesquisa documentos que incluem um campo chamado type.

db.fruit.aggregate([ { $search: { "exists": { "path": "type" } } }])

A query acima retorna os três primeiros documentos da collection. O documento com _id: 4 não está incluído porque não tem um campo type.

➤ Tente fazer isso no playground do MongoDB Search.

Use a notação de ponto para pesquisar campos incorporados. O exemplo a seguir pesquisa documentos que tenham um campo chamado lemons incorporado a um campo chamado quantities.

db.fruit.aggregate([ { "$search": { "exists": { "path": "quantities.lemons" } } }])

➤ Tente fazer isso no playground do MongoDB Search.

O exemplo abaixo usa exists como parte de uma query composta.

db.fruit.aggregate([ { $search: { "compound": { "must": [ { "exists": { "path": "type" } }, { "text": { "query": "apple", "path": "type" } }], "should": { "text": { "query": "fuji", "path": "description" } } } } }])

Ambos os documentos têm um campo type e ambos incluem o termo de pesquisa apple. O documento com _id: 1 é retornado primeiro porque satisfaz a cláusula should.

➤ Tente fazer isso no playground do MongoDB Search.