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.
Menu Docs

ReferĂȘncia de query

MongoDB Search queries take the form of an aggregation pipeline stage. MongoDB Search provides $search and $searchMeta stages, both of which must be the first stage in any query pipeline, including the $lookup and $unionWith sub-pipelines. These stages can be used in conjunction with other aggregation pipeline stages in your query pipeline.

Com base no estĂĄgio do pipeline que vocĂȘ escolher, sua consulta retornarĂĄ os resultados de uma pesquisa de texto completo ou metadados sobre os resultados da pesquisa:

Estågio do pipeline de agregação
PropĂłsito

Retornar resultados da pesquisa de texto completo.

Retornar metadados sobre seus resultados de pesquisa.

A MongoDB Search tambĂ©m fornece query e collectors que vocĂȘ pode usar dentro dos $search $searchMeta estĂĄgios de pipeline de agregação . Os operadores de pesquisa do MongoDB permitem localizar e recuperar dados relevantes da coleção em seu cluster. O coletor retorna um documento representando os resultados dos metadados de pesquisa.

VocĂȘ pode usar os operadores do MongoDB Search para fazer query em termos, frases, formas e pontos geogrĂĄficos, valores numĂ©ricos, documentos semelhantes, termos sinĂŽnimos e muito mais.

You can also search using regex and wildcard expressions. The MongoDB Search compound operator allows you to combine multiple operators inside your $search stage to perform a complex search and filter of data based on what must, must not, or should be present in the documents returned by MongoDB Search. You can use the compound operator to also match or filter documents in the $search stage itself. Running $match after $search is less performant than running $search with the compound operator.

Para saber mais sobre operadores e coletores, consulte Operadores e coletores.

mongod e mongot no mesmo nĂł

When you run a query, MongoDB Search uses the configured read preference to identify the node on which to run the query. The query first goes to the MongoDB process, which is mongod for a replica set cluster or mongos for a sharded cluster.

For a replica set cluster, the MongoDB process routes the query to the mongot on the same node. For sharded clusters, your cluster data is partitioned across mongod instances and each mongot knows about the data on the mongod on the same node only. Therefore, you can't run MongoDB Search queries that target a particular shard. mongos directs the queries to all shards, making these scatter gather queries. If you use zones to distribute a sharded collection over a subset of the shards in the cluster, MongoDB Search routes the query to the zone that contains the shards for the collection that you are querying and runs your $search queries on just the shards where the collection is located.

O MongoDB Search executa a pesquisa e a pontuação e retorna os IDs dos documento e outros metadados da pesquisa dos resultados correspondentes para mongod. O mongod então realiza uma pesquisa completa do documento implicitamente para os resultados correspondentes e retorna os resultados ao cliente.

Se vocĂȘ usar a opção $search concorrente em sua query, o MongoDB Search ativarĂĄ o paralelismo intraquery. Para saber mais, consulte Paralelizar a execução de query entre segmentos.

mongod e mongot em diferentes nĂłs

When you run a query, the query first goes to the mongod based on the configured read preference. By default, the mongod process routes the search query through a load balancer on the same node, which distributes the requests across all of the mongot processes. Alternatively, if you set the searchNodePreference parameter for your $search stage, MongoDB Search runs your query against the same search node each time.

O processo mongot do MongoDB Search executa a pesquisa e a pontuação e retorna os IDs dos documento e os metadados dos resultados correspondentes para mongod. O mongod entĂŁo realiza uma pesquisa completa do documento para os resultados correspondentes e retorna os resultados ao cliente. Se vocĂȘ usar a opção $search concurrent em sua query, o MongoDB Search ativarĂĄ o paralelismo intraquery. Para saber mais, consulte Parallelize Query Execution Across Segments.

O MongoDB Search associa uma pontuação baseada em relevĂąncia a cada documento no conjunto de resultados. A pontuação baseada em relevĂąncia permite que MongoDB Search devolva documentos na ordem da pontuação mais alta para a mais baixa. O MongoDB Search pontua os documentos mais alto se o termo aparecer com frequĂȘncia em um documento e mais baixo se o termo aparecer em muitos documentos da collection. O MongoDB Search tambĂ©m oferece suporte Ă  personalização da pontuação padrĂŁo baseada em relevĂąncia por meio de aumento, decadĂȘncia ou outras opçÔes de modificação. Para saber mais sobre como personalizar as pontuaçÔes resultantes, consulte Classificar os documentos nos resultados.

Dica

See: Learn by Watching

Assista a este vĂ­deo para ter uma visĂŁo geral de pesquisa e rastreamento de suas queries com o MongoDB Search. Neste vĂ­deo, vocĂȘ pode aprender mais sobre operadores do MongoDB Search e como os documentos de o MongoDB Search pontua documentos nos resultados.

Duração: 15 Minutos

VocĂȘ pode criar e executar queries no MongoDB Search usando os seguintes clientes:

mongot nĂŁo retorna erros, mas retorna um conjunto de resultados vazio se sua query $search :

  • Referencia um Ă­ndice que nĂŁo existe. Se vocĂȘ nĂŁo especificar um Ă­ndice por nome na query, o MongoDB Search assumirĂĄ como padrĂŁo um Ă­ndice denominado default. Se vocĂȘ nĂŁo tiver um Ă­ndice chamado default ou se o Ă­ndice que vocĂȘ especificou nĂŁo existir, o MongoDB Search nĂŁo retornarĂĄ um erro e retornarĂĄ um conjunto de resultados vazio. VocĂȘ pode especificar um Ă­ndice vĂĄlido por seu nome utilizando a opção index.

  • Especifica um campo nĂŁo indexado. Se vocĂȘ executar uma query em um campo que nĂŁo esteja indexado, o MongoDB Search nĂŁo retornarĂĄ um erro e retornarĂĄ um conjunto de resultados vazio. VocĂȘ deve especificar somente campos indexados como valores para o parĂąmetro path. VocĂȘ pode habilitar o mapeamento dinĂąmico em sua definição de Ă­ndice para a coleção para garantir que todos os campos indexĂĄveis dinamicamente na coleção sejam indexados automaticamente. Para saber mais, consulte mapeamento dinĂąmico.

  • Usa o operador text em um caminho do campo que nĂŁo Ă© indexado como um tipo string. Se um campo for indexado como um tipo de campo do MongoDB Search diferente de string, como stringFacet ou autocomplete, o MongoDB Search nĂŁo retornarĂĄ um erro e retornarĂĄ um conjunto de resultados vazio. VocĂȘ deve indexar os campos com valores de tipo de dados BSON string como tipo de string para fazer query dos campos usando o operador de texto.

mongot retorna um erro PlanExecutor se sua query $search :

  • Especifica um campo que Ă© indexado como um tipo de dados incorreto. Nesse caso, se vocĂȘ executar uma query, o MongoDB Search retornarĂĄ uma mensagem de erro identificando o campo que foi indexado incorretamente e seu tipo de dados correto. Por exemplo:

    PlanExecutor error during aggregation :: caused by :: Cannot facet on field "genres" because
    it was not indexed as a "stringFacet" field.

    Por exemplo, para executar queries facet (MongoDB Search Operator) nos campos string, number ou date, crie um Ă­ndice para os campos usando o tipo de campo correspondente do MongoDB Search, como stringFacet, number e date respectivamente. Para saber mais, consulte Tipos de dados com e sem suporte.