Overview
Esta página describe cómo utilizar los distintos desarrolladores disponibles en el código y los beneficios de usar los desarrolladores proporcionados.
El driver de Kotlin Sync proporciona métodos y clase type-safe builder que permiten a los desarrolladores crear query y agregación 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 desarrolladores?
Si utilizas solo Kotlin plano para construir documentos de query BSON, no puedes identificar errores de sintaxis hasta tiempo de ejecución. Los desarrolladores ayudan a garantizar la corrección de la sintaxis y pueden ser menos verbosos que construir documentos BSON.
Ejemplo
Esta sección proporciona tres formas equivalentes de obtener el email valores de campo de los documentos en la colección users que cumplen con los siguientes criterios:
genderel valor es"female"ageel valor es mayor que29
La siguiente clase de datos modela los documentos en 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 muestra realiza la query usando la API de query de MongoDB:
collection.find( { "gender": "female", "age" : { "$gt": 29 }}, { "_id": 0, "email": 1 } )
Filtro de clase de documento
El siguiente ejemplo realiza la query utilizando la clase Document para construir el filtro de query:
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 query usando los desarrolladores asistentes:
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)
Utilice desarrolladores con Clases de datos
La La guía Usar desarrolladores con Data Classes ofrece ejemplos de cómo utilizar los constructores precedentes directamente con las propiedades de la Data class. Esta guía podría ayudar a hacer que tu aplicación sea más segura en cuanto a tipos y mejorar la interoperabilidad con Kotlin.