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.
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Menu Docs

Retrieve Data

Neste guia, você pode aprender como usar o driver Scala para recuperar dados de uma coleção MongoDB usando operações de leitura. Você pode chamar o método find() em uma coleção para recuperar documentos que correspondam a um conjunto de critérios.

Os exemplos neste guia usam a companies collection no sample_training banco de dados dos conjuntos de dados de amostra do Atlas . Para acessar essa collection a partir do seu aplicação Scala, crie um MongoClient que se conecte a um Atlas cluster e atribua o seguinte valor às suas variáveis database e collection:

val database: MongoDatabase = mongoClient.getDatabase("sample_training")
val collection: MongoCollection[Document] = database.getCollection("companies")

Para aprender a criar um cluster MongoDB Atlas gratuito e carregar os conjuntos de dados de amostra, consulte o Guia de Introdução do MongoDB.

Para recuperar documentos de uma coleção, use o método find(). Este método utiliza um parâmetro de filtro de consulta e retorna uma instância da FindObservable classe da qual você pode acessar os resultados da consulta. A classe FindObservable também fornece métodos adicionais que você pode encadear a uma instância FindObservable para modificar seu comportamento, como first().

Dica

Para saber mais sobre filtros de query, consulte o guia Especificar uma query .

Para encontrar vários documentos em uma coleção, passe um filtro de queries para o método find() que especifica os critérios dos documentos que você deseja recuperar.

O método find() retorna uma instância de FindObservable, que você pode iterar para ver os documentos correspondentes. Use o método subscribe() para iterar pelo FindObservable.

O exemplo a seguir usa o método find() para localizar todos os documentos nos quais o campo founded_year tem o valor 1970 e imprime os resultados:

val filter = equal("founded_year", 1970)
collection.find(filter).subscribe((doc: Document) => println(doc.toJson()),
(e: Throwable) => println(s"There was an error: $e"))

Observação

Localizar todos os documentos

Para localizar todos os documentos em uma coleção, chame o método find() sem passar nenhum parâmetro:

collection.find()

Para localizar um único documento em uma coleção, chame o método find() e passe um filtro de query que especifique os critérios do documento que você deseja localizar. Em seguida, encadeie o método first() a find().

O método find() retorna uma instância FindObservable e o método first() retorna uma instância SingleObserver que contém o primeiro resultado da query armazenado pelo FindObservable. Você pode acessar o resultado SingleObserver chamando o método subscribe().

O exemplo a seguir usa os métodos find() e first() para localizar o primeiro documento no qual o campo name tem o valor "LinkedIn":

val filter = equal("name", "LinkedIn")
collection.find(filter).first().subscribe((doc: Document) => println(doc.toJson()),
(e: Throwable) => println(s"There was an error: $e"))

Dica

Ordem de classificação

O método first() retorna o primeiro documento em ordem natural no disco se nenhum critério de classificação for especificado.

Você pode modificar o comportamento do método find() encadeando métodos fornecidos pela classe FindObservable . A tabela a seguir descreve alguns desses métodos:

Método
Descrição

explain()

Explica o plano de execução para esta operação com o nível de detalhamento especificado.
Tipo de parâmetro: ExplainVerbosity

collation()

Define o agrupamento a ser usado para a operação. O valor padrão é o agrupamento especificado para a coleção.
Tipo de parâmetro: Collation

comment()

Anexa um comentário à operação.
Tipo de parâmetro: String

first()

Retorna um Observable que armazena apenas o primeiro resultado da query. Para exibir um exemplo que usa esse método, consulte Encontrar um documento nesta página.

limit()

Define o número máximo de documentos que a operação pode retornar.
Tipo de parâmetro: Int

skip()

Define o número de documentos a serem ignorados antes de retornar os resultados.
Tipo de parâmetro: Int

sort()

Define a ordem na qual a operação retorna documentos correspondentes.
Tipo de parâmetro: Bson

O exemplo seguinte utiliza o método find() para localizar todos os documentos nos quais o campo number_of_employees tem o valor 1000. O exemplo utiliza o método limit() para retornar um máximo de 5 resultados:

val filter = equal("number_of_employees", 1000)
collection.find(filter).limit(5).subscribe((doc: Document) => println(doc.toJson()),
(e: Throwable) => println(s"There was an error: $e"))

Para obter uma lista completa dos métodos de nós FindObservable, consulte a documentação da API da classe FindObservable.

Para saber mais sobre filtros de query, consulte o guia Especificar uma query .

Para exibir exemplos de código que recuperam documentos usando o driver Scala, consulte Documentos de query.

Para saber mais sobre qualquer um dos métodos discutidos nesta guia, consulte a seguinte documentação da API: