Docs Menu
Docs Home
/ /

Utilizar patrón de código de desarrolladores

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:

  • Acumuladores

  • Agregados

  • Filtros

  • Indexes

  • Proyecciones

  • Ordena

  • Updates

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.

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:

  • gender el valor es "female"

  • age el valor es mayor que 29

La siguiente clase de datos modela los documentos de la colección users:

data class User(
@BsonId 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
)

El siguiente ejemplo realiza la consulta utilizando la API de consulta de MongoDB:

collection.find(
{ "gender": "female", "age" : { "$gt": 29 }},
{ "_id": 0, "email": 1 }
)

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.

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)

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.

Volver

Expresiones de agregación

En esta página