Docs Menu
Docs Home
/ /

Especifica opciones de conexión

Esta sección explica las opciones de conexión y autenticación de MongoDB compatibles con el controlador Node.js que puede configurar dentro de un MongoClientOptions instancia.

Para obtener más información sobre cómo configurar las opciones de conexión directamente en una cadena de conexión, consulte Cadenas de conexión en el manual del servidor MongoDB.

Nombre
Valores permitidos
Valor por defecto
Descripción

appName

string

null

Especifica el nombre de la aplicación que el controlador pasa al servidor en los metadatos del cliente como parte del protocolo de enlace de conexión. El controlador envía el valor de appName a MongoDB al establecer la conexión. Este valor se registra en la entrada de registro, en los registros de queries lentas y en las colecciones de perfiles.

mecanismo de autenticación

string

null

Especifica el método de autenticación que se utilizará para la conexión al servidor. Si no se especifica un valor, el controlador utiliza el mecanismo predeterminado, SCRAM-SHA-1 o SCRAM-SHA-256, según la versión del servidor. Consulte la Sección Mecanismos de autenticación para ver los mecanismos de autenticación disponibles.

Propiedades del mecanismo de autenticación

pares key:value separados por comas, por ejemplo, "opt1:val1,opt2:val2"

null

Especifica otras opciones proporcionadas para la autenticación, como la opción de activar la canonicalización de nombres de host para GSSAPI.

authSource

string

null

Especifica la base de datos contra la cual se autentican las conexiones.

autoSelectFamily

booleano

true

Si se configura en true, el socket intentará conectarse a direcciones IPv6 e IPv4 hasta que se establezca una conexión. Si está disponible, el controlador seleccionará la primera dirección IPv6.

Tiempo de espera de intento de selección automática de familia

non-negative integer

null

Especifica la cantidad de tiempo en milisegundos que debe esperar a que finalice un intento de conexión antes de intentar con la siguiente dirección cuando se utiliza la opción autoSelectFamily. Si se configura en un número entero positivo menor que 10, se emplea el valor 10 en su lugar.

compresores

lista de cadenas separadas por comas, por ejemplo, "snappy,zlib,zstd"

null

Especifica los tipos de compresión permitidos para los mensajes del protocolo de conexión enviados al servidor o recibidos de este. Consulte Compresión de red para obtener más información.

connectTimeoutMS

non-negative integer

30000

Especifica la cantidad de tiempo en milisegundos que se debe esperar para establecer una única conexión de socket TCP con el servidor antes de que se genere un error. Especificar 0 significa que su aplicación establece un tiempo de espera infinito al establecer un socket.

directConnection

booleano

false

Especifica si se debe forzar el despacho de todas las operaciones al host especificado en el URI de conexión.

Habilitar la validación de UTF-8

booleano

true

Especificar true activa la validación UTF-8 para la conexión. MongoDB genera un error cuando intenta serializar datos de string que contienen caracteres UTF-8 no válidos a BSON. Esto se aplica tanto a las claves de documentos como a los valores de documentos; esta validación añade Gastos en general de procesamiento.

Especificar false desactiva la validación UTF-8 para la conexión. MongoDB no genera errores cuando los datos contienen datos UTF-8 inválidos. Si se desactiva la validación, la aplicación evita los gastos en general del procesamiento de validación. Editar datos mientras la validación está desactivada puede resultar en la pérdida de datos. Desactivar la validación de UTF-8 es una solución temporal para query o exportar datos únicamente.

Para obtener más información sobre los caracteres UTF-8, consulta UTF-8 en Wikipedia.

heartbeatFrequencyMS

entero mayor o igual a 500

null

Especifica el intervalo, en milisegundos, entre las comprobaciones regulares de supervisión del servidor.

loadBalanced

booleano

null

Especifica si el controlador está conectado a un balanceador de carga.

localThresholdMS

non-negative integer

15

Especifica el tamaño de la ventana de latencia, en milisegundos, del tiempo de ida y vuelta para seleccionar entre servidores adecuados. Especificar 0 significa que no hay espera, es decir, el servidor más rápido disponible.

maxIdleTimeMS

non-negative integer

0

Especifica la cantidad de tiempo, en milisegundos, que una conexión puede permanecer inactiva antes de cerrarse. Especificar 0 significa que no hay mínimo.

maxPoolSize

non-negative integer

100

Especifica el número máximo de clientes o conexiones que el controlador puede crear en su pool de conexiones. Este conteo incluye las conexiones en uso.

maxConnecting

non-negative integer

2

Especifica el número máximo de conexiones que el pool de conexiones de un controlador puede estar estableciendo simultáneamente.

maxStalenessSeconds

-1, o un número entero mayor o igual que 90

null

Especifica el retardo máximo de replicación, en tiempo real, que un servidor secundario puede experimentar sin que se le pueda seleccionar. Si se especifica,-1 no hay máximo.

minPoolSize

non-negative integer

0

Especifica el número de conexiones que el controlador crea y mantiene en el pool de conexiones incluso cuando no se están realizando operaciones. Este recuento incluye las conexiones en uso.

proxyHost

string

null

Especifica la dirección IPv4, la dirección IPv6 o el nombre de dominio del proxy SOCKS5.

proxyPort

non-negative integer

null

Especifica el número de puerto TCP del servidor proxy SOCKS5. Si estableces la opción proxyHost, el valor de esta opción se establece por defecto en 1080.

proxyUsername

string

null

Especifica el nombre de usuario para la autenticación en el servidor proxy SOCKS5. Si configuras esta opción en una string de longitud cero, el controlador la ignora.

proxyPassword

string

null

Especifica la contraseña para la autenticación al servidor proxy SOCKS5. Si configuras esta opción en una string de longitud cero, el controlador la ignora.

readConcernLevel

string

null

Especifica el nivel de consistencia de lectura por defecto para el cliente. Consulta nivel de consistencia de lectura para obtener más información.

readPreference

string

"primary"

Especifica la preferencia de lectura por defecto para el cliente (excluye las etiquetas). Consulta preferencia de lectura para obtener más información.

readPreferenceTags

pares clave:valor separados por comas, por ejemplo, "dc:ny,rack:1" y "dc:ny" puede especificarse varias veces, cada instancia de esta clave es un conjunto de etiquetas independiente

null

Especifica las etiquetas de preferencia de lectura por defecto para el cliente. Esta opción es válida solo si el modo de preferencia de lectura no es primario.

El controlador utiliza el orden de las etiquetas en el URI como el orden para la preferencia de lectura.

replicaSet

string

null

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

retryReads

booleano

true

Activar las lecturas reintentables.

retryWrites

booleano

true

Activar las escrituras reintentables.

serverMonitoringMode

auto, stream, poll

auto

Especifica el modo de supervisión que supervisan los controladores. Cuando esta opción se establece en auto, la moda de supervisión lo determina el entorno en el que se ejecuta el controlador. El controlador utiliza el modo de sondeo en entornos de función como servicio (FaaS) y el modo de transmisión en otros entornos.

Tiempo de espera de selección del servidor MS

non-negative integer

30000

Especifica el tiempo de espera, en milisegundos, para esperar la selección del servidor antes de que se produzca un error.

socketTimeoutMS

non-negative integer

0

Se debe especificar la cantidad de tiempo en milisegundos que se dedica a intentar enviar o recibir en un socket antes de que se agote el tiempo de espera. Especificar 0 significa que la aplicación establece un tiempo de espera infinito al establecer un socket.

srvMaxHosts

non-negative integer

0

Especifica el número máximo de resultados de SRV que se seleccionarán aleatoriamente al poblar inicialmente la lista de nodos iniciales o, durante el sondeo de SRV, al añadir nuevos hosts a la topología.

srvServiceName

un nombre de servicio SRV válido conforme a RFC 6335

"mongodb"

Especifica el nombre del servicio que se utilizará para la búsqueda de SRV en el descubrimiento inicial de la lista de nodos iniciales DNS.

ssl

booleano

false

El ssl es un alias para la opción tls.

tls

booleano

false

Especifica si se requiere TLS para las conexiones al servidor. Utilizar un srvServiceName de "mongodb+srv", o especificar otras opciones con el prefijo tls, establece implícitamente el valor de tls en true.

tlsPermitirCertificadosInválidos

booleano

false

Especifica si el controlador genera un error cuando el certificado TLS del servidor no es válido. Configura esta opción en true solo para fines de prueba.

tlsPermitir nombres de host no válidos

booleano

false

Especifica si el controlador genera un error cuando hay una discrepancia entre el nombre de host del servidor y el nombre de host especificado por el certificado TLS. Configura esta opción en true solo para fines de prueba.

tlsCAFile

string

null

Especifica la ruta a un archivo con una sola autoridad de certificación o un paquete de ellas en las que confiar al realizar una conexión TLS. Para obtener más información sobre cómo configurar esta opción de conexión, consulta la sección Proporcionar rutas de archivo de certificado de la guía de TLS.

tlsCertificateKeyFile

string

null

Especifica la ruta al archivo de certificado del cliente o al archivo de llave privada del cliente. Si necesitas ambos, debes concatenar los archivos. Para obtener más información sobre cómo configurar esta opción de conexión, consulta la sección Proporcionar rutas de archivo de certificado de la guía de TLS.

tlsCertificateKeyFilePassword

string

null

Especifica la contraseña para descifrar la llave privada del cliente que se utilizará para las conexiones TLS.

tlsInsecure

booleano

false

Especifica relajar las restricciones de TLS tanto como sea posible, como permitir certificados no válidos o discrepancias en los nombres de host. Configura esta opción en true solo para fines de prueba.

waitQueueTimeoutMS

non-negative integer

0

Especifica la cantidad de tiempo, en milisegundos, que se emplea en intentar obtener una conexión del pool de conexiones de un servidor antes de que se agote el tiempo de espera.

0 indica que no hay tiempo de espera.

zlibCompressionLevel

entero entre -1 y 9 (incluido)

-1

Especifica el nivel de compresión al usar zlib para comprimir mensajes del protocolo de conexión. -1 indica el nivel por defecto, 0 indica sin compresión, 1 indica la velocidad más rápida y 9 indica la mejor compresión. Consulta Compresión de Red para obtener más información.

Configuración
Descripción

connectTimeoutMS

connectTimeoutMS es una opción de conexión que establece el tiempo, en milisegundos, para que una conexión individual de su pool de conexiones establezca una conexión TCP al MongoDB Server antes de expirar. Para modificar el tiempo permitido para MongoClient.connect para establecer una conexión a un MongoDB Server, utilice la opción serverSelectionTimeoutMS en su lugar.

Predeterminado: 30000

socketTimeoutMS

socketTimeoutMS especifica la cantidad de tiempo que el controlador espera por un socket inactivo antes de cerrarlo. El valor por defecto es nunca agotar el tiempo de espera del socket. Esta opción solo se aplica a los sockets que ya han sido conectados.

maxTimeMS

maxTimeMS especifica el tiempo máximo que el servidor espera para que una operación se complete después de haber llegado al servidor. Si una operación supera el límite de tiempo especificado, devuelve un error de tiempo de espera. Puedes pasar maxTimeMS únicamente a una operación individual o a un cursor.

Para especificar la configuración opcional de MongoClient, se debe declarar una o más configuraciones disponibles en el objeto options del constructor de la siguiente manera:

const client = new MongoClient(uri, {
connectTimeoutMS: <integer value>,
socketTimeoutMS: <integer value>
});

Para ver todas las configuraciones disponibles, consulta la documentación de la API de MongoClientOptions.

Para especificar maxTimeMS, pase el método maxTimeMS como una opción con una especificación de tiempo de espera a una operación que devuelva un Cursor:

const Cursor = collection.distinct('my-key', { maxTimeMS: 50 });

Si experimentas un comportamiento inesperado en la red o si un proceso de MongoDB falla con un error, podrías no recibir confirmación de que el controlador cerró correctamente el socket correspondiente.

Para asegurarse de que el controlador cierra correctamente el socket en estos casos, configure la opción socketTimeoutMS. Cuando un proceso de MongoDB agota su tiempo de espera, el controlador cerrará el socket. Le recomendamos que seleccione un valor para socketTimeoutMS que sea de dos a tres veces más largo que la duración esperada de la operación más lenta que ejecute su aplicación.

Puedes evitar que las operaciones de larga duración ralenticen el servidor especificando un valor de tiempo de espera. Puedes encadenar el método maxTimeMS() a una operación que devuelve un Cursor para establecer un tiempo de espera en una acción específica.

El siguiente ejemplo muestra cómo puedes encadenar el método maxTimeMS() a una operación que devuelve un Cursor:

// Execute a find command
await collection
.find({ $where: "sleep(100) || true" })
.maxTimeMS(50);

La opción de conexión keepAlive especifica si se deben activar los keepalives del Protocolo de Control de Transmisión (TCP) en un socket TCP. Si se activa keepalives, el driver verifica si la conexión está activa enviando pings periódicos a la implementación de MongoDB. Esta funcionalidad solo funciona si el sistema operativo es compatible con la opción de socket SO_KEEPALIVE.

La opción keepAliveInitialDelay especifica el número de milisegundos que el controlador espera antes de iniciar un keepalive.

La versión 5.3 del controlador volvió estas opciones obsoletas. A partir de la versión 6.0 del controlador, la opción keepAlive se establece permanentemente en true, y la keepAliveInitialDelay se establece en 300000 milisegundos (300 segundos).

Advertencia

Si su firewall ignora o descarta los mensajes de keepalive, es posible que no pueda identificar las conexiones caídas.

Para obtener más información sobre las opciones de conexión que puedes configurar en una instancia de MongoClientOptions, consulta MongoClientOptions en la Documentación de la API.

Volver

Crea un MongoClient