Overview
Esta sección describe las opciones de conexión y autenticación de MongoDB disponibles en el driver de Rust. Puede configurar su conexión utilizando el URI de conexión (también llamado cadena de conexión) o estableciendo campos en una instancia de ClientOptions cuando cree un Client.
Uso del URI de conexión
Si pasas un URI de conexión al Client::with_uri_str método, puedes incluir opciones de conexión en la string como pares <name>=<value>. El siguiente ejemplo muestra un URI de conexión que contiene la opción connectTimeoutMS con un valor de 60000 y la opción tls con un valor de true:
use mongodb::Client; let uri = "mongodb://<hostname>:<port>/?connectTimeoutMS=60000&tls=true"; let client = Client::with_uri_str(uri).await?;
Uso de ClientOptions
Puede configurar las opciones de conexión en una instancia de ClientOptions en lugar de incluirlas en tu URI de conexión. Cuando configuras tu conexión usando una instancia de ClientOptions, es más fácil cambiar la configuración en tiempo de ejecución y detectar errores durante la compilación. El siguiente ejemplo muestra cómo utilizar ClientOptions para configurar las opciones de conexión:
use std::time::Duration; use mongodb::{Client, options::ClientOptions}; let uri = "mongodb://<hostname>:<port>/"; let mut client_options = ClientOptions::parse(uri).await?; client_options.connect_timeout = Some(Duration::from_secs(60000)); //Set additional options on client_options here let client = Client::with_options(client_options)?;
Opciones de conexión
Las siguientes secciones describen las opciones de conexión disponibles en el controlador Rust. Para ver una lista completa de las opciones de conexión, visite la sección Opciones de Cadena de Conexión de la guía manual del Servidor sobre Cadenas de Conexión.
Compresión de la red
Nombre de la opción | Valores permitidos | Valor por defecto | Descripción |
|---|---|---|---|
compresores | Una lista de cadenas separadas por comas | Ninguno | Especifica los compresores que la instancia |
zlibCompressionLevel | Número entero entre |
| Especifica el campo de nivel de la compresión |
Tiempo de espera
Nombre de la opción | Valores permitidos | Valor por defecto | Descripción |
|---|---|---|---|
connectTimeoutMS | Non-negative integer |
| Especifica el tiempo de espera de conexión, en milisegundos, que se pasa a cada flujo TCP subyacente al intentar conectarse al servidor. |
Selección de servidores
Nombre de la opción | Valores permitidos | Valor por defecto | Descripción |
|---|---|---|---|
heartbeatFrequencyMS | entero mayor o igual a 500 |
| Especifica la cantidad de tiempo en milisegundos que cada hilo de supervisión espera entre ejecuciones de pruebas al servidor. |
maxStalenessSeconds |
|
| Especifica el retraso máximo, en segundos, detrás del nodo primario que un nodo secundario se puede considerar para la operación dada. |
serverSelectionTimeoutMS | Non-negative integer |
| Especifica la cantidad de tiempo en milisegundos que la instancia |
Autenticación
Nombre de la opción | Valores permitidos | Valor por defecto | Descripción |
|---|---|---|---|
mecanismo de autenticación | String | Ninguno | Especifica qué mecanismo de autenticación utilizar. Si no especifica esta opción, el driver utilizará el mecanismo de autenticación por defecto. Para obtener más información sobre la autenticación en el driver Rust, consulta la guía sobre mecanismos de autenticación. |
authMechanismProperties | String | Ninguno | Especifica más propiedades para el mecanismo de autenticación establecido en la opción |
authSource | String | Ver descripción | Especifica la base de datos utilizada para autenticar. |
tls | Booleano |
| Especifica la configuración de TLS que la instancia |
tlsPermitirCertificadosInválidos | Booleano |
| Especifica si la instancia de |
tlsCAFile | String | Ver descripción | Especifica la ruta al archivo de la autoridad de certificación (CA) que la instancia |
tlsCertificateKeyFile | String | Ninguno | Especifica la ruta al archivo de certificado que la instancia |
tlsCertificateKeyFilePassword | String | Ninguno | Especifica la contraseña para descifrar la llave privada en tu archivo de certificado, en caso de que la clave esté cifrada. |
tlsInsecure | Booleano |
| Especifica si la instancia de |
Operaciones de Lectura y Escritura
Nombre de la opción | Valores permitidos | Valor por defecto | Descripción |
|---|---|---|---|
directConnection | Booleano |
| Especifica si la instancia |
enableOverloadRetargeting | Booleano |
| Especifica si el controlador da menos prioridad a un servidor que devuelve un error de sobrecarga, reduciendo la probabilidad de reintentos en el mismo servidor sobrecargado. |
journal | Booleano |
| Solicita confirmación de que la operación se propagó al registro en disco. |
localThresholdMS | Non-negative integer |
| Especifica la cantidad de tiempo en milisegundos que el tiempo promedio de ida y vuelta entre el driver y el servidor puede durar en comparación con el tiempo de ida y vuelta más corto de todos los servidores adecuados. |
maxAdaptiveRetries | Non-negative integer |
| Especifica el número máximo de reintentos que se debe realizar cuando el controlador se enfrenta a errores de sobrecarga. |
readConcernLevel | String | Ninguno | Especifica el nivel de consistencia de lectura por defecto para las operaciones realizadas en la instancia |
readPreference | String |
| Especifica cómo el driver enruta una operación de lectura a los nodos de un set de réplicas. |
readPreferenceTags | Una lista de pares de clave-valor separados por comas | Ninguno | Especifica qué nodos del set de réplicas se consideran para las operaciones. Cada instancia de esta clave es un conjunto de etiquetas independiente. |
replicaSet | String | Ninguno | Especifica el nombre del set de réplicas al que se conecta la instancia |
retryReads | Booleano |
| Especifica si el cliente reintenta una operación de lectura si la operación falla. |
w | Entero no negativo o string | Ninguno | Solicita confirmación de que la operación se ha propagado a un número o variedad específicos de servidores. |
wTimeoutMS | Non-negative integer | Sin límite de tiempo | Especifica un límite de tiempo, en milisegundos, para el nivel de confirmación de escritura (write concern). |
Pools de conexiones
Nombre de la opción | Valores permitidos | Valor por defecto | Descripción |
|---|---|---|---|
maxIdleTimeMS | Non-negative integer |
| Especifica la cantidad de tiempo en milisegundos que una conexión puede permanecer inactiva en un pool de conexiones antes de que el servidor la cierre. |
maxPoolSize | Non-negative integer |
| Especifica el número máximo de conexiones que la instancia |
minPoolSize | Non-negative integer |
| Especifica el número mínimo de conexiones disponibles en el pool de conexiones de un servidor en un momento dado. |
Para obtener más información sobre los pool de conexiones, consulta la guía de pool de conexiones.
General
Nombre de la opción | Valores permitidos | Valor por defecto | Descripción |
|---|---|---|---|
appName | String | Ninguno | Especifica el nombre de la aplicación que la instancia |
Documentación de la API
Para obtener más información sobre ClientOptions para el controlador Rust, consulte la documentación de la API para ClientOptions.