Menu Docs
Página inicial do Docs
/ / /
Scala

Ler dados do MongoDB

Nesta página

  • Visão geral
  • Aplicativo de amostra
  • encontrar um
  • Encontrar vários
  • Contagem de documentos em uma coleção
  • Contagem de documentos retornados de uma query
  • Contagem estimada de documentos
  • Retrieve Distinct Values
  • Monitorar alterações de dados

Nesta página, você pode ver exemplos de código copiáveis que mostram métodos comuns de driver Scala que você pode usar para ler dados do MongoDB.

Dica

Para saber mais sobre qualquer um dos métodos mostrados nesta página, consulte o link fornecido em cada seção.

Para usar um exemplo desta página, copie o exemplo de código para oaplicativo de amostra ou para seu próprio aplicativo. Certifique-se de substituir todos os espaços reservados nos exemplos de código, como <connection string URI>, pelos valores relevantes para sua implantação do MongoDB.

Você pode usar o seguinte aplicativo de exemplo para testar os exemplos de código nesta página. Para usar o aplicativo de amostra, execute as seguintes etapas:

  1. Verifique se você tem o driver Scala instalado em seu projeto Maven ou sbt.

  2. Copie o seguinte código e cole-o em um novo arquivo .scala .

  3. Copie um exemplo de código desta página e cole-o nas linhas especificadas no arquivo.

1import org.mongodb.scala._
2import org.mongodb.scala.bson.Document
3import org.mongodb.scala.model.Filters._
4import org.mongodb.scala.model.changestream._
5
6object SampleReadApp {
7
8 def main(args: Array[String]): Unit = {
9 val mongoClient = MongoClient("<connection string URI>")
10 val database: MongoDatabase = mongoClient.getDatabase("<database name>")
11 val collection: MongoCollection[Document] = database.getCollection("<collection name>")
12
13
14 // Start example code here
15
16 // End example code here
17
18 // Wait for the operations to complete before closing client
19 // Note: This example uses Thread.sleep() for brevity and does not guarantee all
20 // operations will be completed in time
21 Thread.sleep(1000)
22 mongoClient.close()
23 }
24}

O exemplo a seguir recupera um documento que corresponde aos critérios especificados pelo filtro fornecido:

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

Para saber mais sobre o first() método, consulte o guia Recuperar dados.

O exemplo a seguir recupera todos os documentos que correspondem aos critérios especificados pelo filtro fornecido:

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

Para saber mais sobre o método find() , consulte o guia Recuperar dados .

O exemplo a seguir retorna o número de documentos na coleção especificada:

collection.countDocuments()
.subscribe((count: Long) => println(s"Number of documents: $count"),
(e: Throwable) => println(s"There was an error: $e"))

Para saber mais sobre o método countDocuments() , consulte o guia Contagem de documentos .

O exemplo a seguir retorna o número de documentos na coleção especificada que correspondem aos critérios de consulta:

collection.countDocuments(equal("<field>", "<value>"))
.subscribe((count: Long) => println(s"Number of documents: $count"),
(e: Throwable) => println(s"There was an error: $e"))

Para saber mais sobre o método countDocuments() , consulte o guia Contagem de documentos .

O exemplo a seguir retorna um número aproximado de documentos na collection especificada com base nos metadados da collection:

collection.estimatedDocumentCount()
.subscribe((count: Long) => println(s"Estimated number of documents: $count"),
(e: Throwable) => println(s"There was an error: $e"))

Para saber mais sobre o método estimatedDocumentCount() , consulte o guia Contagem de documentos .

O exemplo a seguir retorna todos os valores distintos do nome do campo especificado em uma determinada coleção:

collection.distinct("<field>")
.subscribe((value: String) => println(value),
(e: Throwable) => println(s"There was an error: $e"))

Para saber mais sobre o método distinct() , consulte o guia Retrieve Distinct Field Values (Recuperar valores de campos distintos).

O exemplo a seguir cria um change stream para uma determinada collection e imprime eventos de alteração subsequentes nessa collection:

val changeStreamObservable = collection.watch()
changeStreamObservable.subscribe(
(changeEvent: ChangeStreamDocument[Document]) => {
println(s"Received a change to the collection: ${changeEvent}")
},
(e: Throwable) => {
println(s"Encountered an error: ${e.getMessage}")
},
() => println("Completed")
)

Para saber mais sobre o método watch() , consulte o guia Monitorar alterações de dados .

Voltar

Séries temporais