Introducción
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.
Configura tu proyecto
Install 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.
Crea el proyecto
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.
Agregar la lista de materiales del conductor
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.
Agregar MongoDB como una dependencia
Si utiliza Gradle para gestionar tus paquetes, agregue la siguiente entrada a tu lista de dependencias de 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:
<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.
Agregar dependencias de la librería de serialización
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:
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:
<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.
Crear un clúster de MongoDB
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.
Conéctate a tu 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.

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:

Guarda tu cadena de conexión de Atlas en una ubicación segura a la que puedas acceder para el siguiente paso.
Se debe realizar un query en el clúster de MongoDB desde la aplicación
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:
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.
Trabajando con la clase de documento (alternativa)
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:
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.
Próximos pasos
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.