Overview
Esta página describe cómo utilizar los distintos constructores disponibles en su código y describe los beneficios de utilizar los constructores proporcionados.
El controlador Kotlin Sync proporciona clases y métodos de creación con tipos seguros que permiten a los desarrolladores crear consultas y agregaciones de manera eficiente.
Para obtener más información sobre las clases y métodos de creación disponibles, consulte las siguientes secciones de la documentación de la API:
¿Por qué utilizar Builders?
Si solo usa Kotlin simple para construir documentos de consulta BSON, no podrá identificar errores de sintaxis hasta el tiempo de ejecución. Los constructores ayudan a garantizar la corrección de la sintaxis y pueden ser menos detallados que construir documentos BSON.
Ejemplo
Esta sección proporciona tres formas equivalentes de obtener el email valores de campo de los documentos de la colección users que cumplen los siguientes criterios:
genderel valor es"female"ageel valor es mayor que29
La siguiente clase de datos modela los documentos de la colección users:
data class User( val id: ObjectId, val gender: String, val age: Int, val email: String )
La siguiente clase de datos modela los resultados devueltos por la consulta:
data class Email( val email: String )
API de consultas de MongoDB
El siguiente ejemplo realiza la consulta utilizando la API de consulta de MongoDB:
collection.find( { "gender": "female", "age" : { "$gt": 29 }}, { "_id": 0, "email": 1 } )
Filtro de clase de documento
El siguiente ejemplo realiza la consulta utilizando la clase Document para construir el filtro de consulta:
val filter = Document("gender", "female").append("age", Document("\$gt", 29)) val projection = Document("_id", 0).append("email", 1) val results = collection.find<Email>(filter).projection(projection)
En este caso, podrías incluir fácilmente un error al escribir el operador "\$gt" en el filtro, pero tu IDE solo devuelve el error relevante en tiempo de ejecución.
API de constructores
El siguiente ejemplo realiza la consulta utilizando los ayudantes del generador:
val filter = Filters.and( Filters.eq(User::gender.name, "female"), Filters.gt(User::age.name, 29) ) val projection = Projections.fields( Projections.excludeId(), Projections.include("email") ) val results = collection.find<Email>(filter).projection(projection)
Usar constructores con clases de datos
El La guía "Usar constructores con clases de datos" ofrece ejemplos sobre cómo usar las clases constructoras anteriores directamente con las propiedades de las clases de datos. Esta guía puede ayudarle a mejorar la seguridad de tipos de su aplicación y la interoperabilidad con Kotlin.