MongoDB.local SF, Jan 15: See the speaker lineup & ship your AI vision faster. Use WEB50 to save 50%
Find out more >
Menu Docs
Página inicial do Docs
/ /

Texto da query

O MongoDB oferece suporte a operações de query que executam uma query de texto no conteúdo da string em documentos. Para executar uma query de texto, o MongoDB utiliza um índice de texto e o operador de query $text. Para saber mais sobre as opções de pesquisa de texto completo, consulte Pesquisa de texto no manual do servidor.

O driver fornece o método assistente Filters.text() para facilitar a criação de filtros de query de texto.

Você deve configurar os seguintes componentes para executar os exemplos de código neste guia:

  • Uma coleção test.restaurants preenchida com documentos do arquivo restaurants.json nos ativos de documentação do Github.

  • As seguintes declarações de importação:

import org.mongodb.scala._
import org.mongodb.scala.model._

Observação

Este guia usa as implicações do Observable como abordadas no Quick Start Primary.

Primeiro, conecte a um MongoDB deployment e, em seguida, declare e defina as instâncias MongoDatabase e MongoCollection .

O código a seguir se conecta a uma MongoDB deployment standalone em execução em localhost na porta 27017. Em seguida, define a variável database para fazer referência ao banco de dados test e a variável collection para fazer referência à coleção restaurants :

val mongoClient: MongoClient = MongoClient()
val database: MongoDatabase = mongoClient.getDatabase("test")
val collection: MongoCollection[Document] = database.getCollection("restaurants")

Para saber mais sobre como se conectar a sistemas do MongoDB, consulte o tutorial Conectar ao MongoDB .

Para criar um índice de texto, utilize o auxiliar estático Indexes.text() para criar uma especificação para um índice de texto e passar a especificação para o método MongoCollection.createIndex() para criar o índice.

O exemplo seguinte cria um índice de texto no campo name em documentos na coleção:

collection.createIndex(Indexes.text("name")).printResults()

Para executar uma query de texto, use o método assistente Filters.text() para especificar o filtro de query de texto.

Por exemplo, o código a seguir executa uma query de texto no campo name para corresponder às strings "bakery" ou "coffee":

collection.countDocuments(Filters.text("bakery coffee")).printResults("Text query matches: ")
Text query matches: [2]

Para cada documento correspondente, uma query de texto atribui uma pontuação que representa a relevância de um documento para o filtro de query de texto especificado. Para retornar e classificar por pontuação, use o operador $meta no documento de projeção e a expressão de classificação:

collection.find(Filters.text("bakery cafe"))
.projection(Projections.metaTextScore("score"))
.sort(Sorts.metaTextScore("score"))
.printResults()

O assistente Filters.text() pode aceitar várias opções de query de texto. O driver fornece a classe TextSearchOptions para especificar essas opções.

Por exemplo, a seguinte consulta de texto especifica a opção de idioma da consulta de texto ao executar uma consulta de texto para a palavra "cafe":

collection.countDocuments(Filters.text("cafe", TextSearchOptions().language("english")))
.printResults("Text query matches (english): ")
Text query matches (english): [1]

Para aprender mais sobre a query de texto, consulte as seguintes seções no manual do MongoDB Server :

Voltar

Fluxos de alterações

Nesta página