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
/ /

Buscar documentos

En esta guía, puedes aprender a usar el controlador Kotlin Sync para recuperar datos de una colección de MongoDB utilizando operaciones de lectura. Puedes llamar al find() método para recuperar documentos que coincidan con un conjunto de criterios especificados en un filtro de query.

Los ejemplos de esta guía usan la colección restaurants en la base de datos sample_restaurants de la conjuntos de datos de muestra de Atlas. Para aprender a crear una implementación gratuita de MongoDB y cargar los conjuntos de datos de ejemplo, consulta la guía de MongoDB Get Started.

Los documentos de esta colección están modelados por la siguiente clase de datos Kotlin:

data class Restaurant(
val name: String,
val cuisine: String
)

El método find() recupera documentos de una colección. Este método toma un filtro de query y devuelve todos los documentos coincidentes. Un filtro de query es un documento que especifica los criterios que el driver utiliza para cotejar documentos de la colección.

Para obtener más información acerca de los filtros de query, consulte la Guía 'Especificar una query' .

El siguiente ejemplo encadena el método first() con la llamada al método find() para encontrar el primer documento en el que el valor del campo cuisine es "Spanish":

val results = collection.find(eq(Restaurant::cuisine.name, "Spanish")).first()

La operación find() del ejemplo anterior devuelve un documento MongoDB, que puede imprimir, como se muestra en el siguiente ejemplo:

val results = collection.find(eq(Restaurant::cuisine.name, "Spanish")).first()
println(results)
Restaurant(name=Tropicoso Club, cuisine=Spanish)

El siguiente ejemplo utiliza el método find() para encontrar todos los documentos en los que el valor del campo cuisine es "Spanish":

val results = collection.find(eq(Restaurant::cuisine.name, "Spanish"))

La operación find() en el ejemplo anterior devuelve un objeto FindIterable, que puedes recorrer utilizando el método forEach(), como se muestra en el siguiente ejemplo:

val results = collection.find(eq(Restaurant::cuisine.name, "Spanish"))
results.forEach { result ->
println(result)
}
Restaurant(name=Tropicoso Club, cuisine=Spanish)
Restaurant(name=Beso, cuisine=Spanish)
Restaurant(name=Sabor Latino Restaurant, cuisine=Spanish)
...

Nota

Encuentre todos los documentos

Para encontrar todos los documentos en una colección, pasa un filtro vacío al método find():

val results = collection.find()

Puedes modificar el comportamiento del método find() encadenando métodos a la llamada del método find(). La siguiente tabla describe los métodos comúnmente utilizados para modificar consultas:

Método
Descripción

batchSize()

Limits the number of documents to return per batch. To learn more about batch size, see cursor.batchSize() in the MongoDB Server manual.

collation()

Sets the collation options for the query.

comment()

Specifies a string to attach to the query. This can help you trace and interpret the operation in the server logs and in profile data.

first()

Returns the first document that matches the query or throws a MongoClientException if no matching documents exist.

firstOrNull()

Returns the first document that matches the query or null if no matching documents exist.

hint()

Specifies the index to use for the query.

limit()

Limits the number of documents to be returned from the query.

skip()

Sets the number of documents to skip.

sort()

Defines the sort criteria to apply to the query.

El siguiente ejemplo encadena el método limit() para limitar el número de documentos devueltos por la query a 10:

val results = collection
.find(eq(Restaurant::cuisine.name, "Spanish"))
.limit(10)

Para obtener una lista completa de los métodos que modifican el comportamiento de find(), consulta la documentación de la API de la clase FindIterable.

Para más información sobre los filtros de query, consultar Especificar una query.

Para ver ejemplos de código ejecutable que recuperan documentos utilizando el controlador Kotlin Sync, consulta Documentos de búsqueda.

Para aprender más sobre cualquiera de los métodos o tipos analizados en esta guía, consulta la siguiente documentación de API:

  • find()

  • FindIterable

Volver

Insertar documentos

En esta página