Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Buscar documentos

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

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

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 sobre los filtros de query, consulta la guía Especificar una consulta.

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() en el ejemplo anterior devuelve un documento de MongoDB, que puedes 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()

Limita el número de documentos que se devuelven por agrupar. Para obtener más información sobre el tamaño de lote, consulte cursor.batchSize() en el manual del servidor MongoDB.

collation()

Establece las opciones de intercalación para la consulta.

comment()

Especifica una cadena de texto que se adjuntará a la consulta. Esto puede ayudarle a rastrear e interpretar la operación en los registros del servidor y en los datos de perfil.

first()

Devuelve el primer documento que coincide con la consulta o lanza un MongoClientException si no existe ningún documento coincidente.

firstOrNull()

Devuelve el primer documento que coincide con la consulta o null si no existe ningún documento coincidente.

hint()

Especifica el índice que se utilizará para la query.

limit()

Limita el número de document que se devolverán de la query.

skip()

Establece el número de documentos a omitir.

sort()

Define los criterios de ordenación que se aplicarán a la 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: