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 |
| 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 |
mecanismo de autenticación | string |
| 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, |
Propiedades del mecanismo de autenticación | pares key:value separados por comas, por ejemplo, "opt1:val1,opt2:val2" |
| 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 |
| Especifica la base de datos contra la cual se autentican las conexiones. |
autoSelectFamily | booleano |
| Si se configura en |
Tiempo de espera de intento de selección automática de familia | non-negative integer |
| 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 |
compresores | lista de cadenas separadas por comas, por ejemplo, "snappy,zlib,zstd" |
| 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 |
| 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 |
directConnection | booleano |
| 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 |
| Especificar Especificar Para obtener más información sobre los caracteres UTF-8, consulta UTF-8 en Wikipedia. |
heartbeatFrequencyMS | entero mayor o igual a 500 |
| Especifica el intervalo, en milisegundos, entre las comprobaciones regulares de supervisión del servidor. |
loadBalanced | booleano |
| Especifica si el controlador está conectado a un balanceador de carga. |
localThresholdMS | non-negative integer |
| Especifica el tamaño de la ventana de latencia, en milisegundos, del tiempo de ida y vuelta para seleccionar entre servidores adecuados. Especificar |
maxIdleTimeMS | non-negative integer |
| Especifica la cantidad de tiempo, en milisegundos, que una conexión puede permanecer inactiva antes de cerrarse. Especificar |
maxPoolSize | non-negative integer |
| 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 |
| 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 |
| 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, |
minPoolSize | non-negative integer |
| 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 |
| Especifica la dirección IPv4, la dirección IPv6 o el nombre de dominio del proxy SOCKS5. |
proxyPort | non-negative integer |
| Especifica el número de puerto TCP del servidor proxy SOCKS5. Si estableces la opción |
proxyUsername | string |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| Especifica el nombre del Set de réplicas al que conectarse. |
retryReads | booleano |
| Activar las lecturas reintentables. |
retryWrites | booleano |
| Activar las escrituras reintentables. |
serverMonitoringMode |
|
| Especifica el modo de supervisión que supervisan los controladores. Cuando esta opción se establece en |
Tiempo de espera de selección del servidor MS | non-negative integer |
| 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 |
| 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 |
srvMaxHosts | non-negative integer |
| 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 |
| 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 |
| El |
tls | booleano |
| Especifica si se requiere TLS para las conexiones al servidor. Utilizar un |
tlsPermitirCertificadosInválidos | booleano |
| Especifica si el controlador genera un error cuando el certificado TLS del servidor no es válido. Configura esta opción en |
tlsPermitir nombres de host no válidos | booleano |
| 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 |
tlsCAFile | string |
| 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 |
| 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 |
| Especifica la contraseña para descifrar la llave privada del cliente que se utilizará para las conexiones TLS. |
tlsInsecure | booleano |
| 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 |
waitQueueTimeoutMS | non-negative integer |
| 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.
|
zlibCompressionLevel | entero entre |
| Especifica el nivel de compresión al usar zlib para comprimir mensajes del protocolo de conexión. |
Opciones de tiempo de espera de conexión
Configuración | Descripción |
|---|---|
connectTimeoutMS |
Predeterminado: 30000 |
socketTimeoutMS |
|
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 |
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 });
Cerrar los sockets después de la conexión.
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.
Evita que las operaciones de larga duración ralenticen el servidor
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);
Opción de conexión keepAlive
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.
Información Adicional
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.