Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
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 drivers oficiales de MongoDB.

El driver Kotlin permite conectar y comunicarse con clústeres de MongoDB desde una aplicación de 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 con el desarrollo de Kotlin/JVM, consulte la 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ás utilizando un IDE, consulta la Guía para crear nuevas compilaciones de Gradle o la Guía para la compilación con Maven para obtener más información sobre cómo configurar tu proyecto.

En tu IDE, crea un nuevo Maven o Gradle proyecto. Agrega la lista de materiales (BOM) para los artefactos JVM de MongoDB a tu proyecto para organizar las versiones de las dependencias. El BOM simplifica la gestión de dependencias al garantizar que mantengas versiones consistentes y compatibles de las dependencias, como la del driver de Kotlin y la de la librería central del driver. Utiliza el BOM para evitar conflictos de versiones y simplificar las actualizaciones.

Seleccione de lo siguiente Maven y Gradle pestañas para ver las instrucciones de añadir la BOM para cada gestor de dependencias:

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.4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

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

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

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 utiliza Gradle para gestionar tus paquetes, agregue la siguiente entrada a tu lista de dependencias de build.gradle.kts:

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

Si usas Maven para gestionar tus paquetes, agrega la siguiente entrada a tu lista de dependencias pom.xml:

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

Porque ya instalaste el BOM, puedes omitir una versión en la entrada de dependencia del controlador de Kotlin. La versión que especifique en el BOM determina las versiones de dependencias 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 para documentos en MongoDB, también debes agregar uno o ambos de los siguientes paquetes de serialización a tu aplicación:

  • bson-kotlinx (Recomendado)

  • bson-kotlin

Si estás usando Gradle para gestionar tus paquetes, agrega una de las siguientes entradas a tu lista de dependencias build.gradle.kts:

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

Si usas Maven para gestionar tus paquetes, añade una de las siguientes entradas a tu 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, consulta Serialización de Kotlin.

Después de configurar las dependencias de tu proyecto Kotlin, crea un clúster de MongoDB en el que puedas almacenar y gestionar tus datos. Completa el tutorial Introducción a MongoDB para crear una nueva cuenta de Atlas, crear y lanzar un clúster 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 de Kotlin para conectarse a tu clúster de MongoDB y ejecutar una query en los datos de muestra.

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

Si te estás conectando a una instancia o clúster que no está alojado en Atlas, consulta la guía Conéctate a MongoDB para ver instrucciones sobre cómo dar formato a tu cadena de conexión.

Para recuperar tu cadena de conexión del clúster y del usuario que creaste en el paso anterior, inicia sesión en tu cuenta de Atlas y navega a la página Clusters en la sección Database. Haz clic en el botón Connect para tu 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.

Haz clic en el botón Drivers en la sección Connect to your application y selecciona "Kotlin" en el menú de selección Driver y la versión que mejor se adapte a la versión que instalaste 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, haz clic en el botón a la derecha de la cadena de conexión para copiarla en tu portapapeles tal como se muestra en la siguiente captura de pantalla:

Pantalla de cadena de conexión GUI de Atlas Connection

Guarda tu cadena de conexión de Atlas en una ubicación segura a la que puedas acceder para el siguiente paso.

A continuación, crea un archivo llamado QuickStartDataClassExample.kt en tu 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 data clase de Kotlin para modelar los datos de MongoDB.

Cuando se ejecuta la función main, la aplicación imprime los detalles de un documento de película que coincide con la query, 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 ves ningún resultado o recibes un error, verifica si incluiste la cadena de conexión correcta en tu aplicación. Además, verifica que hayas cargado correctamente el conjunto de datos de muestra en tu clúster de MongoDB Atlas.

Importante

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

Si encuentras el siguiente error al conectarte a tu instancia de MongoDB, debes actualizar tu JDK a la última versión disponible:

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

Esta excepción es un problema conocido al utilizar el protocolo TLS 1.3 con versiones específicas de JDK, pero este problema ha sido solucionado en 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 anteriores de parches o a una versión más reciente.

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:

QuickStartDocumentExample.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 se ejecuta la función main, la aplicación imprime los detalles de un documento de película que coincide con la query, 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 ves ningún resultado o recibes un error, verifica si incluiste la cadena de conexión correcta en tu aplicación. Además, verifica que hayas cargado correctamente el conjunto de datos de muestra en tu 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: Aprende sobre las operaciones CRUD básicas en el driver de Kotlin.

Volver

Overview

En esta página