Overview
En esta guía, aprenderá a usar el controlador de sincronización de Kotlin para recuperar datos de una colección de MongoDB mediante operaciones de lectura. Puede llamar al find() método para recuperar documentos que coinciden con un conjunto de criterios especificados en un filtro de consulta.
Datos de muestra
Los ejemplos de esta guía utilizan 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 muestra, consulte la guía de introducción a MongoDB.
Los documentos de esta colección están modelados por la siguiente clase de datos de Kotlin:
data class Restaurant( val name: String, val cuisine: String )
Buscar documentos
El find() método recupera documentos de una colección. Este método utiliza un filtro de consulta y devuelve todos los documentos coincidentes. Un filtro de consulta es un documento que especifica los criterios que utiliza el controlador para buscar coincidencias en los documentos de la colección.
Para obtener más información sobre los filtros de consulta, consulte la Especifique una guía de consulta.
Ejemplo de encontrar un documento
El siguiente ejemplo encadena el método first() a 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)
Ejemplo de búsqueda de documentos
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() del ejemplo anterior devuelve un objeto FindIterable, sobre el que se puede iterar 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()
Modificar el comportamiento de búsqueda
Puede modificar el comportamiento del método find() encadenando métodos a la llamada al método find(). La siguiente tabla describe los métodos más comunes para modificar consultas:
Método | Descripción |
|---|---|
| Limits the number of documents to return per batch. To learn more about
batch size, see cursor.batchSize()
in the MongoDB Server manual. |
| Sets the collation options for the query. |
| 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. |
| Returns the first document that matches the query or throws a MongoClientException
if no matching documents exist. |
| Returns the first document that matches the query or null if no matching documents exist. |
| Specifies the index to use for the query. |
| Limits the number of documents to be returned from the query. |
| Sets the number of documents to skip. |
| Defines the sort criteria to apply to the query. |
El siguiente ejemplo encadena el método limit() para limitar la cantidad de documentos devueltos por la consulta 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() consulte la documentación de la API de la FindIterable clase.
Información Adicional
Para más información sobre los filtros de query, consultar Especificar una query.
Para ver ejemplos de código ejecutables que recuperan documentos mediante el controlador Kotlin Sync, consulte Buscar documentos.
Documentación de la API
Para aprender más sobre cualquiera de los métodos o tipos analizados en esta guía, consulta la siguiente documentación de API: