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
/ /
/ / /

Elija un destino de conexión

En esta guía, puedes aprender cómo utilizar una cadena de conexión y MongoClient objeto para conectarse a diferentes tipos de implementaciones de MongoDB.

Para conectarte a una implementación de MongoDB en Atlas, incluye los siguientes elementos en tu cadena de conexión:

  • URL de tu clúster de Atlas

  • Nombre de usuario de MongoDB

  • Contraseña de MongoDB

Luego, pasa tu cadena de conexión al método MongoClient.create().

Tip

Sigue el Guía de conexión del controlador Atlas para recuperar tu cadena de conexión.

Al conectarse a Atlas, recomendamos usar la opción de cliente API estable para evitar cambios importantes cuando Atlas se actualice a una nueva versión del servidor MongoDB. Para obtener más información sobre la función API estable, consulte Página API estable.

El siguiente código muestra cómo utilizar el controlador de Kotlin para conectarse a un clúster de Atlas. El código también utiliza la opción serverApi para especificar una versión estable de la API:

// Replace the placeholder with your Atlas connection string
val uri = "<connection string>"
// Construct a ServerApi instance using the ServerApi.builder() method
val serverApi = ServerApi.builder()
.version(ServerApiVersion.V1)
.build()
val settings = MongoClientSettings.builder()
.applyConnectionString(ConnectionString(uri))
.serverApi(serverApi)
.build()
// Create a new client and connect to the server
val mongoClient = MongoClient.create(settings)
val database = mongoClient.getDatabase("admin")
try {
// Send a ping to confirm a successful connection
val command = Document("ping", BsonInt64(1))
val commandResult = database.runCommand(command)
println("Pinged your deployment. You successfully connected to MongoDB!")
} catch (me: MongoException) {
System.err.println(me)
}

Para conectarse a una implementación local de MongoDB, use localhost como el nombre de host. Por defecto, el proceso mongod se ejecuta en el puerto 27017, aunque puedes personalizarlo para tu implementación.

El siguiente código muestra cómo usar el driver de Kotlin para conectarse a una implementación local de MongoDB:

import com.mongodb.kotlin.client.coroutine.MongoClient
val uri = "mongodb://localhost:27017/"
val client = MongoClient.create(uri)

Una implementación de un set de réplicas de MongoDB es un grupo de instancias conectadas que almacenan el mismo conjunto de datos. Esta configuración de instancias proporciona redundancia de datos y alta disponibilidad de datos.

Para conectarse a un conjunto de réplicas, especifique los nombres de host (o direcciones IP) y los números de puerto de los miembros del conjunto de réplicas.

Si no puedes proporcionar una lista completa de hosts en el set de réplicas, puedes especificar uno o más de los hosts en el set de réplicas e indicar al driver de Kotlin que realice un descubrimiento automático para encontrar los demás. Para indicar al driver que realice un descubrimiento automático, realiza una de las siguientes acciones:

  • Especifique el nombre del set de réplicas como el valor del parámetro replicaSet.

  • Especifique false como el valor del parámetro directConnection.

  • Especifica más de un host en el conjunto de réplicas.

Nota

El constructor MongoClient es no bloqueante. Al conectarse a un set de réplicas, el constructor devuelve el control inmediatamente mientras el cliente utiliza hilos en segundo plano para conectarse al set de réplicas.

Si construye un MongoClient e imprime inmediatamente la representación de cadena de su atributo nodes, la lista podría estar vacía mientras el cliente se conecta a los miembros del set de réplicas.

Los siguientes ejemplos muestran cómo conectarse a un set de réplicas de MongoDB que funciona en el puerto 27017 de tres hosts diferentes mediante el uso de la clase ConnectionString o MongoClientSettings. Selecciona la pestaña que corresponde a tu clase preferida.

val connectionString = ConnectionString("mongodb://host1:27017,host2:27017,host3:27017/")
val mongoClient = MongoClient.create(connectionString)
val seed1 = ServerAddress("host1", 27017)
val seed2 = ServerAddress("host2", 27017)
val seed3 = ServerAddress("host3", 27017)
val settings = MongoClientSettings.builder()
.applyToClusterSettings { builder ->
builder.hosts(
listOf(seed1, seed2, seed3)
)
}
.build()
val mongoClient = MongoClient.create(settings)

Nota

Set de réplicas en Docker

Cuando un set de réplicas se ejecuta en Docker, se podría exponer solo un punto final de MongoDB. En este caso, el set de réplicas no se puede detectar. Si se especifica directConnection=false en la URI de conexión, o se deja esta opción sin configurar, puedes evitar que tu aplicación se conecte a ella.

En un entorno de prueba o desarrollo, se puede conectar al set de réplicas especificando directConnection=true. En un entorno de producción, se recomienda configurar el clúster para que cada instancia de MongoDB sea accesible fuera de la red virtual de Docker.

Para utilizar el descubrimiento de servicios DNS para buscar el registro DNS SRV del servicio al que te estás conectando, deber especificar el formato de conexión SRV en tu cadena de conexión. Además, si habilitas el formato de conexión SRV, el driver de Kotlin vuelve a escanear automáticamente nuevos hosts sin necesidad de cambiar la configuración del cliente.

El siguiente código muestra una cadena de conexión que utiliza el formato de conexión SRV:

val uri = "mongodb+srv://<hostname>/"

Para obtener más información sobre el formato de conexión SRV, consulte la entrada Formato de conexión SRV en el manual del servidor MongoDB.

Para obtener más información sobre cómo crear un objeto MongoClient en el controlador Kotlin, consulte la siguiente documentación de API:

Volver

Crea un MongoClient

En esta página