Docs Menu
Docs Home
/ /

Elija un destino de conexión

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

Para conectarse a una implementación de MongoDB en Atlas, incluya los siguientes elementos en su cadena de conexión:

  • La URL de su clúster Atlas

  • Su nombre de usuario de la base de datos MongoDB

  • Su contraseña de la base de datos MongoDB

Luego, pase la cadena de conexión al constructor MongoClient.

Tip

Sigue el Guía de conexión del controlador Atlas para recuperar su 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 de MongoDB Server. Para obtener más información sobre la función API estable, consulte Conectarse con la guía API estable.

El siguiente código muestra cómo usar el controlador de sincronización de Kotlin para conectarse a un clúster de Atlas. El código también usa el método serverApi() para especificar una versión estable de la API.

// Defines Stable API version
val serverApi = ServerApi.builder()
.version(ServerApiVersion.V1)
.build()
// Uses MongoClientSettings to apply connection string and specify the Stable API version
val settings = MongoClientSettings.builder()
.applyConnectionString("<connection string URI>")
.serverApi(serverApi)
.build()
val mongoClient = MongoClient.create(settings)

Para conectarse a una implementación local de MongoDB, use localhost como nombre de host. De forma predeterminada, el proceso mongod se ejecuta en el puerto 27017, aunque puede personalizarlo para su implementación.

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

val settings = MongoClientSettings.builder()
.applyConnectionString("mongodb://localhost:27017")
.build()
val mongoClient = MongoClient.create(settings)

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 puede proporcionar una lista completa de hosts en el conjunto de réplicas, puede especificar uno o más de ellos e indicar al controlador de Kotlin Sync que realice la detección automática para encontrar los demás. Para ello, realice una de las siguientes acciones:

  • Especifique el nombre del conjunto 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 MongoClient constructor no es bloqueante. Al conectarse a un conjunto de réplicas, el constructor retorna inmediatamente mientras el cliente usa subprocesos en segundo plano para conectarse al conjunto de réplicas.

Si construye un MongoClient e inmediatamente imprime 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 conjunto de réplicas.

Los siguientes ejemplos muestran cómo conectarse a un conjunto de réplicas de MongoDB que se ejecuta en el puerto 27017 de tres hosts diferentes mediante la clase ConnectionString o MongoClientSettings. Seleccione la pestaña que corresponda a su clase preferida.

val mongoClient = MongoClient.create("mongodb://host1:27017,host2:27017,host3:27017/")
val hosts = listOf(
ServerAddress("host1", 27017),
ServerAddress("host2", 27017),
ServerAddress("host3", 27017)
)
val settings = MongoClientSettings.builder()
.applyToClusterSettings { builder ->
builder.hosts(hosts)
}
.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 usar el descubrimiento de servicios DNS para buscar el registro DNS SRV del servicio al que te conectas, especifica el formato de conexión SRV en la cadena de conexión. Si se especifica este formato, el driver de Kotlin Sync vuelve a escanear automáticamente por nuevos hosts. Tu implementación puede añadir hosts a su topología sin requerir cambios en 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 aprender más sobre el formato de conexión SRV, consulta la entrada Formato de conexión SRV en el manual de MongoDB Server.

Volver

Crea un MongoClient

En esta página