Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Leer datos

En esta página, puedes ver ejemplos de código copiables que muestran métodos comunes del controlador de Scala que puedes utilizar para leer datos de MongoDB.

Tip

Para obtener más información sobre cualquiera de los métodos que se muestran en esta página, consulta el enlace que se proporciona en cada sección.

Para utilizar un ejemplo de esta página, copie el ejemplo de código en el aplicación de muestra o su propia aplicación. Asegúrese de reemplazar todos los marcadores de posición en los ejemplos de código, como <connection string URI>, con los valores relevantes para su implementación de MongoDB.

Puede utilizar la siguiente aplicación de muestra para probar los ejemplos de código en esta página. Para usar la aplicación de muestra, siga los siguientes pasos:

  1. Asegúrate de tener instalado el controlador de Scala en tu proyecto de Maven o sbt.

  2. Copia el siguiente código y pégalo en un nuevo archivo .scala.

  3. Copia un ejemplo de código de esta página y pégalo en las líneas especificadas del archivo.

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}

El siguiente ejemplo recupera un documento que coincide con los criterios especificados en el filtro proporcionado:

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 obtener más información sobre el método first(), consulte la Retrieve Data guide.

El siguiente ejemplo recupera todos los documentos que coinciden con los criterios especificados por el filtro dado:

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

Para aprender más sobre el método find(), consulta la guía Recuperar datos.

El siguiente ejemplo devuelve el número de documentos en la colección especificada:

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

Para obtener más información sobre el método countDocuments(), consulta la guía Contar documentos.

El siguiente ejemplo devuelve el número de documentos en la colección especificada que cumplen con los criterios de la query:

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

Para obtener más información sobre el método countDocuments(), consulta la guía Contar documentos.

El siguiente ejemplo devuelve un número aproximado de documentos en la colección especificada en función de los metadatos de la colección:

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

Para obtener más información sobre el método estimatedDocumentCount(), consulta la guía Contar documentos.

El siguiente ejemplo devuelve todos los valores distintos del nombre de campo especificado en una colección determinada:

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

Para obtener más información sobre el método distinct(), consulta la guía Recuperar Valores Únicos de Campo.

El siguiente ejemplo crea un flujo de cambios para una colección dada e imprime los eventos de cambio posteriores en esa colección:

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 obtener más información sobre el método watch(), consulta la guía Supervisar cambios de datos.

Volver

Time Series

En esta página