Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Especifica opciones de conexión

Esta sección describe las opciones de conexión y autenticación de MongoDB disponibles en el driver Kotlin sincronizar. Puedes configurar tu conexión estableciendo opciones ya sea en la URI de conexión o dentro de una instancia MongoClientSettings.

Si pasas un URI de conexión al método MongoClient.create(), puedes incluir las opciones de conexión en la string como pares <name>=<value>. En el siguiente ejemplo, el URI de conexión contiene la opción connectTimeoutMS con un valor de 60000 y la opción tls con un valor de true:

val uri = "mongodb://<hostname>:<port>/?connectTimeoutMS=60000&tls=true"
val mongoClient = MongoClient.create(uri)

Puedes configurar opciones de conexión en una instancia de MongoClientSettings usando métodos de la clase MongoClientSettings.Builder y luego pasando el objeto de configuración al método MongoClient.create().

Configurar la conexión de esta manera facilita el cambio de configuraciones en tiempo de ejecución y puede ayudar a detectar errores en tiempo de compilación.

El siguiente ejemplo muestra cómo especificar el destino de conexión y ajustar otras opciones al crear una instancia de MongoClientSettings:

val settings = MongoClientSettings.builder()
.applyToClusterSettings { builder -> builder.hosts(listOf(ServerAddress("localhost", 27017))) }
.applyToSocketSettings { builder -> builder.connectTimeout(60000, TimeUnit.MILLISECONDS) }
.applyToSslSettings { builder -> builder.enabled(true) }
.build()
val mongoClient = MongoClient.create(settings)

Si prefieres proporcionar una cadena de conexión en lugar de especificar el hostname y el puerto, puedes usar el método applyConnectionString(), y luego establecer otras opciones usando métodos del builder, como se muestra en el siguiente código:

val uri = "<connection string>"
val settings = MongoClientSettings.builder()
.applyConnectionString(ConnectionString(uri))
.applyToSocketSettings { builder -> builder.connectTimeout(60000, TimeUnit.MILLISECONDS) }
.applyToSslSettings { builder -> builder.enabled(true) }
.build()
val mongoClient = MongoClient.create(settings)

Las siguientes secciones describen las opciones de conexión disponibles en el driver de Kotlin sincronizar. Cada opción muestra el par opción-valor que puedes usar en un URI de conexión y, si está disponible, el método del controlador para configurarlo dentro de una instancia MongoClientSettings.

Opción de conexión
Descripción

compresores

Los tipos de compresión preferidos, en orden, para los mensajes del protocolo de conexión enviados al servidor o recibidos de este. El driver utiliza el primero de estos tipos de compresión que admite el servidor.

Tipo de dato: string delimitado por comas
MongoClientSettings: compressorList(listOf(<MongoCompressor>))
URI de conexión: compressors=snappy,zstd,zlib

zlibCompressionLevel

El nivel de compresión de zlib que se debe usar. Esta opción acepta un valor entero entre -1 y 9, que corresponde a los siguientes ajustes:

- -1: (por defecto). zlib utiliza su nivel de compresión por defecto (generalmente 6).
- 0: Sin compresión.
- 1: La mayor velocidad pero la menor compresión.
- 9: Mejor compresión, pero la velocidad más lenta.

Tipo de dato: entero
Por defecto: -1
MongoClientSettings: compressorList(listOf(zlib.withProperty(MongoCompressor.LEVEL, 3)))
URI de conexión: zlibCompressionLevel=3

Opción de conexión
Descripción

connectTimeoutMS

El tiempo en milisegundos en que se intenta una conexión antes de que se agote el tiempo de espera.

Tipo de dato: entero
Por defecto: 10000
MongoClientSettings:

applyToSocketSettings{ builder ->
builder.connectTimeout(10, TimeUnit.SECONDS)
}

URI de conexión: timeoutMs=10000

socketTimeoutMS (deprecated)

Esta opción está obsoleta. Puede configurar este tiempo de espera
estableciendo el tiempo de espera a nivel de cliente en
su lugar.

Milisegundos para intentar enviar o recibir en una conexión
antes de que el intento se agote.

Tipo de dato: entero
Por defecto: sin tiempo de espera
MongoClientSettings:

applyToSocketSettings{ builder ->
builder.readTimeout(5, TimeUnit.SECONDS)
}

URI de conexión: socketTimeoutMS=5000

Opción de conexión
Descripción

serverSelectionTimeoutMS

La cantidad máxima de tiempo, en milisegundos, que el driver espera para que la selección del servidor tenga éxito antes de lanzar una excepción.

Tipo de dato: entero
Por defecto: 30000
MongoClientSettings:

applyToClusterSettings{ builder ->
builder.serverSelectionTimeout(30, TimeUnit.SECONDS)
}

URI de conexión: serverSelectionTimeoutMS=30000

Tip

Para aprender más sobre las opciones de autenticación, consulta la sección Mecanismos de autenticación.

Opción de conexión
Descripción

mecanismo de autenticación

El mecanismo que utiliza el driver de sincronización de Kotlin para autenticar la aplicación.

Tipo de dato: string
Por defecto: "SCRAM-SHA-256" al conectarse a MongoDB v4.0 o posterior
MongoClientSettings:

credential(
MongoCredential.createScramSha256Credential(...)
)

URI de conexión: authMechanism=SCRAM-SHA-256

authMechanismProperties

Opciones específicas del mecanismo de autenticación. Esta opción no es necesaria para todos los mecanismos de autenticación.

Tipo de dato: string
URI de conexión: authMechanismProperties=AWS_SESSION_TOKEN:12435

authSource

La base de datos en la que autenticarse.

Tipo de dato: string
Por defecto: "admin"
URI de conexión: authSource=admin

Nombre de usuario

El nombre de usuario para la autenticación. Cuando esta opción se incluye en una URI de conexión, debes codificarla con porcentaje.

Tipo de dato: string
URI de conexión: username=my+user

Contraseña

La contraseña para la autenticación. Cuando esta opción se incluye en una URI de conexión, debes codificarla con porcentaje.

Tipo de dato: string
URI de conexión: password=strong+password

Para obtener más información sobre cómo conectar con diferentes tipos de implementaciones de MongoDB, consulta la guía Elige un Target de Conexión.

Opción de conexión
Descripción

replicaSet

Especifica el nombre del set de réplicas al que conectarse.

Tipo de dato: string
URI de conexión: replicaSet=myRS

directConnection

Si se conecta solo al nodo primario del set de réplicas.

Tipo de dato: booleano
Por defecto: false
MongoClientSettings:

applyToClusterSettings{ builder ->
builder.mode(ClusterConnectionMode.SINGLE)
}

URI de conexión: directConnection=true

readPreference

Especifica la preferencia de lectura del cliente. Para obtener más información, consulte Preferencia de lectura en el manual del servidor.

Tipo de dato: string
Por defecto: primary
MongoClientSettings: readPreference(ReadPreference.primary())
URI de conexión: readPreference=primary

readConcern

Especifica el nivel de consistencia de lectura del cliente. Para obtener más información, consulte Nivel de consistencia de lectura en el manual del servidor.

Tipo de dato: string
MongoClientSettings: readConcern(ReadConcern.MAJORITY)
URI de conexión: readConcern=majority

writeConcern

Especifica el nivel de confirmación de escritura (write concern) del cliente. Para obtener más información, consulte Nivel de confirmación de escritura (write concern) en el manual del servidor.

Tipo de dato: string
MongoClientSettings: writeConcern(WriteConcern.MAJORITY)
URI de conexión: writeConcern=majority

localThresholdMS

La ventana de latencia para la elegibilidad de un nodo de set de réplicas. Si el ping de ida y vuelta de un nodo tarda más que el tiempo de ping de ida y vuelta del servidor más rápido más este valor, el servidor no es elegible para la selección.

Tipo de dato: entero
Por defecto: 15
MongoClientSettings:

applyToClusterSettings{ builder ->
builder.localThreshold(35, TimeUnit.MILLISECONDS)
}

URI de conexión: localThresholdMS=35

Para ver una lista completa de opciones de conexión, consulta Cadenas de conexión en el manual del servidor.

Para obtener más información sobre las clases y métodos mencionados en esta guía, consulta la siguiente documentación API: