Docs Menu
Docs Home
/ /

Comenzar con el driver de Kotlin

Esta guía le muestra cómo crear una aplicación que usa el controlador Kotlin para conectarse a un clúster de MongoDB Atlas. Si prefiere conectarse a MongoDB con un controlador o lenguaje de programación diferente, consulte Lista de controladores oficiales de MongoDB.

El controlador Kotlin le permite conectarse y comunicarse con clústeres MongoDB desde una aplicación Kotlin.

MongoDB Atlas es un servicio de base de datos en la nube totalmente administrado que aloja sus datos en clústeres MongoDB. En esta guía, aprenderá a empezar a usar su propio clúster gratuito.

Tip

Para ver otro ejemplo que demuestra cómo compilar una aplicación en Kotlin que se conecte a MongoDB Atlas, consulta el Tutorial para desarrolladores: comenzar con el driver de MongoDB para Kotlin.

Asegúrese de que su sistema tenga Kotlin instalado y ejecutándose en JDK 1.8 o posterior. Para obtener más información sobre cómo comenzar a desarrollar con Kotlin/JVM, consulte "Comenzar con Kotlin/JVM" en la documentación del lenguaje Kotlin.

Esta guía le muestra cómo agregar las dependencias del controlador Kotlin de MongoDB mediante Gradle o Maven. Le recomendamos usar un entorno de desarrollo integrado (IDE) como IntelliJ IDEA o Eclipse IDE para configurar Gradle o Maven y compilar y ejecutar su proyecto.

Si no está utilizando un IDE, consulte la guía Creación de nuevas compilaciones de Gradle o la guía Creación de Maven para obtener más información sobre cómo configurar su proyecto.

En su IDE, cree un nuevo proyecto Maven o Gradle. Agregue la Lista de Materiales (BOM) de los artefactos de la JVM de MongoDB a su proyecto para organizar las versiones de las dependencias. La BOM simplifica la gestión de dependencias, garantizando el mantenimiento de versiones consistentes y compatibles, por ejemplo, entre el controlador de Kotlin y la biblioteca principal de controladores. Use la BOM para evitar conflictos de versiones y simplificar las actualizaciones.

Seleccione entre las siguientes opciones Maven y Gradle pestañas para ver instrucciones para agregar la lista de materiales para cada administrador de dependencia:

Agregue el siguiente código al dependencyManagement lista en su archivo pom.xml:

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-bom</artifactId>
<version>5.6.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

Agregue el siguiente código a la lista de dependencias de su archivo build.gradle.kts. Los ejemplos de código de esta guía utilizan el lenguaje específico del dominio (DSL) Kotlin para Gradle:

dependencies {
implementation(platform("org.mongodb:mongodb-driver-bom:5.6.1"))
}

Para ver una lista de dependencias que gestiona el BOM, consulta la mongodb-driver-bom dependency listing en el sitio web de Maven Repositorio.

Si está utilizando Gradle para administrar sus paquetes, agregue la siguiente entrada a su build.gradle.kts lista de dependencias:

construir.gradle.kts
dependencies {
implementation("org.mongodb:mongodb-driver-kotlin-coroutine")
}

Si está utilizando Maven para administrar sus paquetes, agregue la siguiente entrada a su pom.xml lista de dependencias:

pom.xml
<dependencies>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-kotlin-coroutine</artifactId>
</dependency>
</dependencies>

Dado que instaló la BOM, puede omitir una versión en la entrada de dependencia del controlador Kotlin. La versión que especifique en la BOM determinará las versiones de dependencia que se instalarán.

Después de configurar tus dependencias, se debe garantizar de que estén disponibles para el proyecto ejecutando el administrador de dependencias y actualizando el proyecto en el IDE.

Para permitir que el controlador convierta entre objetos Kotlin y BSON, el formato de datos de los documentos en MongoDB, también debe agregar uno o ambos de los siguientes paquetes de serialización a su aplicación:

  • bson-kotlinx (Recomendado)

  • bson-kotlin

Si está utilizando Gradle para administrar sus paquetes, agregue una de las siguientes entradas a su lista de dependencias build.gradle.kts:

construir.gradle.kts
implementation("org.mongodb:bson-kotlinx")
// OR
implementation("org.mongodb:bson-kotlin")

Si está utilizando Maven para administrar sus paquetes, agregue una de las siguientes entradas a su lista de dependencias pom.xml:

pom.xml
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>bson-kotlinx</artifactId>
</dependency>
<!--OR-->
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>bson-kotlin</artifactId>
</dependency>

Después de configurar tus dependencias, se debe garantizar de que estén disponibles para el proyecto ejecutando el administrador de dependencias y actualizando el proyecto en el IDE.

Para obtener más información sobre estos paquetes, consulte Serialización de Kotlin.

Después de configurar las dependencias de su proyecto Kotlin, cree un clúster de MongoDB donde pueda almacenar y administrar sus datos. Complete el tutorial "Introducción a MongoDB" para configurar una nueva cuenta de Atlas, crear y lanzar un clúster de MongoDB de nivel gratuito y cargar conjuntos de datos de muestra.

Después de completar los pasos del tutorial Introducción a Atlas, tendrá un nuevo clúster MongoDB implementado en Atlas, un nuevo usuario de base de datos y datos de muestra cargados en su clúster.

Este paso muestra cómo crear y ejecutar una aplicación que utiliza el controlador Kotlin para conectarse a su clúster MongoDB y ejecutar una consulta en los datos de muestra.

Primero, debe especificar cómo se conecta el controlador a su clúster de MongoDB. Para ello,incluya una cadena de conexión en su código. Esta cadena incluye información sobre el nombre de host o la dirección IP y el puerto de su clúster, el mecanismo de autenticación, las credenciales de usuario y otras opciones de conexión.

Si se conecta a una instancia o clúster que no está alojado en Atlas, consulte la guía Conectarse a MongoDB para obtener instrucciones sobre cómo formatear su cadena de conexión.

Para recuperar la cadena de conexión del clúster y el usuario que creó en el paso anterior, inicie sesión en su cuenta de Atlas y navegue a la página Clusters, en la sección Database. Haga clic en el botón Connect para su nueva implementación.

Pantalla de selección de clúster de la GUI de Atlas Connection

Si aún no tienes un usuario de base de datos configurado, MongoDB te pedirá que crees y configures un nuevo usuario.

Haga clic en el botón Drivers debajo de la sección Connect to your application y seleccione "Kotlin" en el menú de selección Driver y la versión que mejor coincida con la versión que instaló en el menú de selección Version.

Asegúrate de que la opción View full code sample esté desmarcada para ver solo la cadena de conexión.

A continuación, haga clic en el botón a la derecha de la cadena de conexión para copiarla al portapapeles como se muestra en la siguiente captura de pantalla:

Pantalla de cadena de conexión de la GUI de Atlas Connection

Guarde la cadena de conexión de Atlas en una ubicación segura a la que pueda acceder para el siguiente paso.

A continuación, cree un archivo llamado QuickStartDataClassExample.kt en su proyecto.

Copia el siguiente código de muestra en el archivo y reemplaza el valor de la variable uri con tu cadena de conexión de MongoDB Atlas que guardaste en el paso anterior. Reemplaza el marcador de posición <db_password> de tu cadena de conexión con la contraseña que configuraste para tu usuario que tiene permisos de atlasAdmin:

Ejemplo de clase de datos de inicio rápido.kt
import com.mongodb.client.model.Filters.eq
import com.mongodb.kotlin.client.coroutine.MongoClient
import io.github.cdimascio.dotenv.dotenv
import kotlinx.coroutines.flow.firstOrNull
import kotlinx.coroutines.runBlocking
// Create data class to represent a MongoDB document
data class Movie(val title: String, val year: Int, val cast: List<String>)
fun main() {
// Replace the placeholder with your MongoDB deployment's connection string
val uri = CONNECTION_STRING_URI_PLACEHOLDER
val mongoClient = MongoClient.create(uri)
val database = mongoClient.getDatabase("sample_mflix")
// Get a collection of documents of type Movie
val collection = database.getCollection<Movie>("movies")
runBlocking {
val doc = collection.find(eq("title", "Back to the Future")).firstOrNull()
if (doc != null) {
println(doc)
} else {
println("No matching documents found.")
}
}
mongoClient.close()
}

Nota

Este ejemplo utiliza una clase de datos Kotlin para modelar datos de MongoDB.

Cuando ejecuta la función main, la aplicación imprime los detalles de un documento de película que coincide con la consulta, como se muestra en la siguiente salida:

Movie(
title=Back to the Future,
year=1985,
cast=[Michael J. Fox, Christopher Lloyd, Lea Thompson, Crispin Glover]
)

Tip

Clases de datos

Para obtener más información sobre el uso de clases de datos para almacenar y recuperar datos, consulte la guía Formato de datos del documento: Clases de datos.

Si no ve ningún resultado o recibe un error, compruebe si incluyó la cadena de conexión correcta en su aplicación. Además, confirme que cargó correctamente el conjunto de datos de muestra en su clúster de MongoDB Atlas.

Importante

Problema de conexión conocido al usar TLS v1.3

Si encuentra el siguiente error al conectarse a su instancia de MongoDB, debe actualizar su JDK a la última versión del parche:

javax.net.ssl.SSLHandshakeException: extension (5) should not be presented in certificate_request

Esta excepción es un problema conocido cuando se utiliza el protocolo TLS 1.3 con versiones específicas de JDK, pero este problema está solucionado para las siguientes versiones de JDK:

  • JDK 11.0.7

  • JDK 13.0.3

  • JDK 14.0.2

Para resolver este error, actualice su JDK a una de las versiones del parche anterior o a una más nueva.

Después de completar este paso, tendrá una aplicación funcional que utiliza el controlador Kotlin para conectarse a su clúster MongoDB, ejecutar una consulta en los datos de muestra e imprimir el resultado.

La sección anterior muestra cómo ejecutar una query en una colección de muestra para recuperar datos utilizando una clase de datos Kotlin. Esta sección muestra cómo usar la clase documento para almacenar y recuperar datos de MongoDB.

En un nuevo archivo llamado QuickStartDocumentExample.kt, pegue el siguiente código de ejemplo para ejecutar una consulta en su conjunto de datos de ejemplo en MongoDB Atlas. Reemplace el valor de la variable uri con su cadena de conexión de MongoDB Atlas:

Ejemplo de documento de inicio rápido.kt
import com.mongodb.client.model.Filters.eq
import com.mongodb.kotlin.client.coroutine.MongoClient
import io.github.cdimascio.dotenv.dotenv
import kotlinx.coroutines.flow.firstOrNull
import kotlinx.coroutines.runBlocking
import org.bson.Document
fun main() {
// Replace the placeholder with your MongoDB deployment's connection string
val uri = CONNECTION_STRING_URI_PLACEHOLDER
val mongoClient = MongoClient.create(uri)
val database = mongoClient.getDatabase("sample_mflix")
val collection = database.getCollection<Document>("movies")
runBlocking {
val doc = collection.find(eq("title", "Back to the Future")).firstOrNull()
if (doc != null) {
println(doc.toJson())
} else {
println("No matching documents found.")
}
}
mongoClient.close()
}

Cuando ejecuta la función main, la aplicación imprime los detalles de un documento de película que coincide con la consulta, como se muestra en la siguiente salida:

{
_id: ...,
plot: 'A young man is accidentally sent 30 years into the past...',
genres: [ 'Adventure', 'Comedy', 'Sci-Fi' ],
...
title: 'Back to the Future',
...
}

Si no ve ningún resultado o recibe un error, compruebe si incluyó la cadena de conexión correcta en su aplicación. Además, confirme que cargó correctamente el conjunto de datos de muestra en su clúster de MongoDB Atlas.

Se puede continuar desarrollando la aplicación de muestra consultando las siguientes guías:

Bases de datos y colecciones: Aprende más sobre la interacción con bases de datos y colecciones de MongoDB.

Operaciones CRUD: aprenda sobre las operaciones CRUD básicas en el controlador Kotlin.

Volver

Overview

En esta página