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 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.
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 a desarrollar con Kotlin/JVM, consulte "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á 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.
Agregar la lista de materiales del conductor
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.
Agregar MongoDB como una dependencia
Si está utilizando Gradle para administrar sus paquetes, agregue la siguiente entrada a su build.gradle.kts lista de dependencias:
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:
<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.
Agregar dependencias de la biblioteca de serialización
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:
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:
<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.
Crear un clúster de MongoDB
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.
Conéctese a 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.

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:

Guarde la cadena de conexión de Atlas en una ubicación segura a la que pueda acceder para el siguiente paso.
Se debe realizar un query en el clúster de MongoDB desde la aplicación
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:
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.
Trabajar con la clase 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 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.
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: aprenda sobre las operaciones CRUD básicas en el controlador Kotlin.