Overview
Esta sección incluye guías sobre cómo utilizar cada uno de los constructores disponibles y demuestra la utilidad que proporcionan las clases de constructores del controlador Kotlin.
El controlador Kotlin proporciona clases para simplificar la ejecución de operaciones CRUD y el uso de la API de Agregación. Los métodos de utilidad estáticos permiten crear consultas y otros tipos de documentos de forma más eficiente.
¿Por qué utilizar Builders?
Al utilizar clases de construcción, aprovecha los siguientes productos:
El compilador de Kotlin para encontrar errores durante el desarrollo
El IDE para descubrimiento, depuración y finalización de código
Al usar constructores, el compilador de Kotlin y el IDE detectan errores como operadores mal escritos o parámetros faltantes desde el principio. Si se usa la shell de MongoDB o Kotlin simple, se escriben los operadores como cadenas y no se observa ninguna indicación visual del problema, lo que envía estos errores al tiempo de ejecución en lugar de al tiempo de compilación.
Al usar clases de constructor, puedes escribir operadores como métodos, de modo que tu IDE indique al instante si tu código contiene errores. Durante el desarrollo, tu IDE también puede mostrarte métodos que puedes usar y completar tu código con parámetros de marcador de posición.
Ejemplo de escenario
Supongamos que desea enviar un correo electrónico de marketing a todos los usuarios de la users
Colección que cumpla los siguientes criterios:
Usuarios en los que el valor del campo
genderes"female"Usuarios en los que el valor del campo
agees mayor que29
También necesitas que tu consulta devuelva únicamente sus direcciones de correo electrónico.
Los documentos de la colección users están modelados por la siguiente clase de datos:
data class User( val id: BsonObjectId = BsonObjectId(), val gender: String, val age: Int, val email: String, )
Uso del shell de MongoDB
El siguiente código proporciona el comando que se utiliza en MongoDB Shell para realizar la consulta:
collection.find({ "gender": "female", "age" : { "$gt": 29 }}, { "_id": 0, "email": 1 })
Sin usar constructores
El siguiente código proporciona la operación de búsqueda que crea sin constructores en el controlador Kotlin:
data class Results(val email: String) val filter = Document().append("gender", "female").append("age", Document().append("\$gt", 29)) val projection = Document().append("_id", 0).append("email", 1) val results = collection.find<Results>(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.
Uso de constructores
El siguiente código proporciona la operación de búsqueda que se crea mediante el uso de constructores en el controlador Kotlin:
import com.mongodb.client.model.Filters import com.mongodb.client.model.Projections
data class Results(val email: String) 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<Results>(filter).projection(projection)
Constructores disponibles
Agregados: crear canales de agregación
Consulte la búsqueda vectorial de MongoDB para obtener más información sobre el
Aggregates.vectorSearch()método
Índices: Construcción de claves de índice
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.