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

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"))
{"_id":{"$oid":"..."},"name":"Mitsubishi Motors","permalink":"mitsubishi-motors",
"crunchbase_url":"http://www.crunchbase.com/company/mitsubishi-motors",
... }
{"_id":{"$oid":"..."},"name":"Western Digital","permalink":"western-digital",
"crunchbase_url":"http://www.crunchbase.com/company/western-digital",
... }
{"_id":{"$oid":"..."},"name":"Celarayn","permalink":"celarayn","crunchbase_url":
"http://www.crunchbase.com/company/celarayn",
... }

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"))
{"_id": {"$oid": "..."}, "name": "LinkedIn", "permalink": "linkedin", "crunchbase_url":
"http://www.crunchbase.com/company/linkedin", "homepage_url": "http://linkedin.com",
...}

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"))
{"_id": {"$oid": "..."}, "name": "Akamai Technologies", "permalink": "akamai-technologies",
"crunchbase_url": "http://www.crunchbase.com/company/akamai-technologies", "homepage_url":
"http://www.akamai.com", ... }
{"_id": {"$oid": "..."}, "name": "Yodle", "permalink": "yodle", "crunchbase_url":
"http://www.crunchbase.com/company/yodle", "homepage_url": "http://www.yodle.com", ... }
{"_id": {"$oid": "..."}, "name": "Antal International", "permalink": "antal-international",
"crunchbase_url": "http://www.crunchbase.com/company/antal-international", "homepage_url":
"http://antal.com", ... }
{"_id": {"$oid": "..."}, "name": "Yatra online", "permalink": "yatra-online", "crunchbase_url":
"http://www.crunchbase.com/company/yatra-online", "homepage_url": "http://www.Yatra.com", ... }
{"_id": {"$oid": "..."}, "name": "Gumtree", "permalink": "gumtree", "crunchbase_url":
"http://www.crunchbase.com/company/gumtree", "homepage_url": "http://www.gumtree.co.za", ... }

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 Ler dados.

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