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 Ruby. Puedes configurar tu conexión utilizando el URI de conexión (también llamado cadena de conexión) o pasando argumentos al constructor Mongo::Client.

Si pasas un URI de conexión al constructor Mongo::Client, puedes incluir opciones de conexión en la string como pares <name>=<value>. En el siguiente ejemplo, el URI de la conexión contiene la opción connectTimeoutMS con un valor de 60000 y la opción tls con un valor de true:

uri = "mongodb://<hostname>:<port>/?connectTimeoutMS=60000&tls=true"
client = Mongo::Client.new(uri)

Puede pasar opciones de conexión como argumentos al constructor Mongo::Client en lugar de incluirlas en su URI de conexión. Cuando configuras tu conexión de esta manera, es más fácil para ti cambiar los ajustes en tiempo de ejecución y detectar errores durante la compilación. El siguiente ejemplo muestra cómo usar el constructor Mongo::Client para configurar opciones de conexión:

uri = "mongodb://<hostname>:<port>"
client = Mongo::Client.new(uri, connect_timeout: 60000, ssl: true)

Las siguientes secciones describen las opciones de conexión disponibles en el controlador Ruby.

Opción de conexión
Descripción

compresores

Una lista de posibles compresores a utilizar, en orden de preferencia. El driver elige el primer compresor que también es compatible con el servidor. Actualmente, el driver solo admite zstd, snappy y zlib.

Tipo de dato: Array<String>
Por defecto: ninguno
Ejemplo de cliente: compressors: ['snappy', 'zstd', 'zlib']
Ejemplo de URI de conexión: compressors=snappy,zstd,zlib

zlib_compression_level

El nivel de compresión de zlib que se debe usar, si se usa compresión. Esta opción acepta un valor entero entre -1 y 9:

- -1: zlib usa su nivel de compresión por defecto (normalmente 6).
- 0: Sin compresión.
- 1: La más rápida velocidad pero la menor compresión.
- 9: Mejor compresión pero la velocidad más lenta.

Para obtener más información, consulte la documentación del módulo zlib de Ruby.

Tipo de dato: Integer
Por defecto: None
Ejemplo de cliente: zlib_compression_level: 3
Ejemplo de URI de conexión: zlibCompressionLevel=3

Opción de conexión
Descripción

timeout_conexión

El número de segundos que se deben esperar para establecer una conexión de socket antes de generar una excepción. Este tiempo de espera también se utiliza para la resolución de registros SRV DNS.

nil y 0 significan que no hay tiempo de espera. La creación del cliente fallará con un error si se pasa un valor de tiempo de espera no válido (como un valor negativo o un valor no numérico).

Tipo de dato: Float
Por defecto: 10.0
Ejemplo de cliente: connect_timeout: 10.0
Ejemplo de URI de conexión: connectTimeoutMS=10000

:timeout_ms

El número de milisegundos a esperar para que se ejecute una operación antes de generar una excepción.

0 significa que no hay tiempo de espera. La creación del cliente fallará con un error si se pasa un valor de tiempo de espera no válido (como un valor negativo o un valor no numérico).

Tipo de dato: Integer
Por defecto: ninguno
Ejemplo de cliente: timeout_ms: 5000
Ejemplo de URI de conexión: timeoutMS=5000

Opción de conexión
Descripción

:balanceo de carga

Si se espera conectar a un balanceador de carga.

Tipo de dato: Boolean
Por defecto: false
Ejemplo de cliente: load_balanced: { true }
Ejemplo de URI de conexión: N/A

:server_monitoring_mode

El protocolo de supervisión del servidor que se utilizará. Cuando esta opción se establece en :auto, la moda de supervisión lo determina el entorno en el que se ejecuta el driver. El driver utiliza el modo de sondeo en entornos de función como servicio (FaaS), como Amazon Web Services Lambda, y el modo de transmisión en otros entornos.

Tipo de dato: Symbol
Por defecto: :auto
Ejemplo de cliente: server_monitoring_mode: :poll
Ejemplo de URI de conexión: serverMonitoringMode=poll

:server_selection_timeout

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

Tipo de dato: Integer
Por defecto: 30
Ejemplo de cliente: server_selection_timeout: 30
Ejemplo de URI de conexión: serverSelectionTimeoutMS=30000

Para obtener más información sobre la selección de servidores, consulte la guía Selección de Servidores.

Opción de conexión
Descripción

auth_mech

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

Tipo de dato: Symbol
Por defecto: :scram256
nil si no se proporcionan las credenciales de usuario.
Ejemplo de cliente: auth_mech: :scram256
Ejemplo de URI de conexión: authMechanism=SCRAM-SHA-256

propiedades_mecánica_autenticación

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

Tipo de dato: Hash
Por defecto: Cuando utiliza el mecanismo de autenticación GSSAPI,
las propiedades por defecto son {service_name: "mongodb"}.
De lo contrario, el valor por defecto es nil.
Ejemplo de cliente: auth_mech_properties: {aws_session_token: '12345'}
Ejemplo de URI de conexión: authMechanismProperties=AWS_SESSION_TOKEN:12345

origen_de_autenticación

La base de datos contra la que se va a autenticar.

Tipo de dato: String
Por defecto: admin, si se proporcionan credenciales
Ejemplo de cliente: auth_source: admin
Ejemplo de URI de conexión: authSource=admin

Usuario/a

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

Tipo de datos: String
Por defecto: ninguno
Ejemplo de cliente: user: my+user
Ejemplo de URI de conexión: username=my+user

:contraseña

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

Tipo de datos: String
Por defecto: ninguno
Ejemplo de cliente: password: strong+password
Ejemplo de URI de conexión: password=strong+password

Opción de conexión
Descripción

Conjunto de réplicas

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

Tipo de dato: String
Por defecto: ninguno
Ejemplo de cliente: replica_set: 'myRS'
Ejemplo de URI de conexión: replicaSet=myRS

conexión_directa

Si se conecta directamente al host especificado

Tipo de dato: Boolean
Por defecto: false
Ejemplo de cliente: direct_connection: true
Ejemplo de URI de conexión: directConnection=true

:enable_overload_retargeting

Si el driver desprioriza un servidor que devuelve un error de sobrecarga, lo que reduce la probabilidad de reintentar en el mismo servidor sobrecargado.

Tipo de dato: Boolean
Por defecto: false
Ejemplo de cliente: enable_overload_retargeting: true
Ejemplo de URI de conexión: enableOverloadRetargeting=true

max_intentos_adaptativos

El número máximo de reintentos que se deben realizar cuando el driver encuentra errores de sobrecarga.

Tipo de dato: Integer
Por defecto: 2
Ejemplo de cliente: max_adaptive_retries: 3
Ejemplo de URI de conexión: maxAdaptiveRetries=3

:leer

Las opciones de preferencia de lectura. Para obtener más información, consulte Preferencia de lectura en el manual de MongoDB Server.

Tipo de datos: Hash
Por defecto: { mode: :primary }
Ejemplo de cliente: read: { mode: :primary }
Ejemplo de URI de conexión: readPreference=primary

:read_concern

Especifica las opciones de nivel de consistencia de lectura. Para obtener más información, consulta Nivel de consistencia de lectura en el manual de MongoDB Server.

Tipo de dato: Hash
Por defecto: ninguno
Ejemplo de cliente: read: { level: :majority }
Ejemplo de URI de conexión: readConcern=majority

conformidad_de_lectura

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 de MongoDB Server.

Tipo de dato: Hash
Por defecto: write_concern: { w: 1 }
Ejemplo de cliente: write_concern: { w: 2 }
Ejemplo de URI de conexión: w=2

:local_threshold

La ventana de latencia, en segundos, 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: Float
Por defecto: 0.015
Ejemplo de cliente: local_threshold: 0.020
Ejemplo de URI de conexión: localThresholdMS=20

Opción de conexión
Descripción

:max_pool_size

El número máximo de conexiones simultáneas que mantiene el grupo. Si el número de conexiones en uso a un servidor alcanza el valor especificado, la siguiente solicitud a ese servidor espera hasta que una conexión esté disponible. Establecer esta opción en 0 crea un pool de conexiones ilimitado.

Tipo de dato: Integer
Por defecto: 100
Ejemplo de cliente: max_pool_size: 100
Ejemplo de URI de conexión: maxPoolSize=100

conexiones máximas

El número máximo de conexiones que cada pool puede establecer simultáneamente.

Tipo de dato: Integer
Por defecto: 2
Ejemplo de cliente: max_connecting: 2
Ejemplo de URI de conexión: maxConnecting=2

min_pool_size

El número mínimo de conexiones simultáneas que mantiene el grupo.

Tipo de dato: Integer
Por defecto: 0
Ejemplo de cliente: min_pool_size: 1
Ejemplo de URI de conexión: minPoolSize=1

:max_idle_time

El número máximo de segundos que una conexión puede permanecer inactiva en el pool.

Tipo de dato: Integer
Por defecto: 0 (sin límite)
Ejemplo de cliente: max_idle_time: 10
Ejemplo de URI de conexión: maxIdleTimeMS=10000

Para obtener más información sobre los pool de conexiones, consulta la guía de pool de conexiones.

Para obtener más información sobre las opciones de Mongo::Client para el driver de Ruby, consulta la documentación de la API de Mongo::Client.