Overview
Esta página describe las opciones de conexión disponibles en el controlador C y explica cómo aplicarlas a su conexión MongoDB.
Cómo especificar las opciones de conexión
Las siguientes secciones describen las formas en que puede especificar las opciones de conexión.
Utilice la cadena de conexión
Si pasa una cadena de conexión a monogoc_client_t En la estructura, puede incluir opciones de conexión en la cadena como pares <name>=<value>. En el siguiente ejemplo, la cadena de conexión contiene la opción connectTimeoutMS con un valor de 60000 y la opción tls con un valor de true:
mongoc_init(); // Specifies the connection options in the connection string const char *uri = "mongodb+srv://localhost:27017/?connectTimeoutMS=60000&tls=true"; // Creates a new client mongoc_client_t *client = mongoc_client_new_from_uri_with_error(uri, &error); if (!client) { fprintf(stderr, "%s\n", error.message); goto cleanup; } // Use client... cleanup: mongoc_client_destroy(client); mongoc_uri_destroy(uri);
Para obtener más información sobre las opciones que puede especificar en una cadena de conexión, consulte Opciones de cadena de conexión en el manual del servidor MongoDB.
Utilice la API de opciones de URI
Puede usar las opciones de URI para configurar la conexión en el código, en lugar de en una cadena de conexión. Configurar la conexión de esta manera facilita el cambio de ajustes en tiempo de ejecución, ayuda a detectar errores durante la compilación y ofrece más opciones de configuración que la cadena de conexión.
Para configurar las opciones de conexión mediante la opción URI, realice los siguientes pasos:
Crea una estructura
mongoc_uri_tcon tu cadena de conexiónUtilice una función de opción URI para especificar la opción de conexión deseada
Cree un nuevo cliente con la URI pasando la URI a
mongoc_client_new_from_uri()
El siguiente ejemplo de código muestra cómo realizar los pasos anteriores:
mongoc_uri_t *uri = mongoc_uri_new_with_error("mongodb+srv://localhost:27017/", &error); if (!uri) { fprintf(stderr, "%s\n", error.message); goto cleanup; } // Specifies the connection options by using the URI options API if (!mongoc_uri_set_option_as_int32(uri, MONGOC_URI_CONNECTTIMEOUTMS, 60000)) { fprintf(stderr, "Failed to set '%s'\n", MONGOC_URI_CONNECTTIMEOUTMS); goto cleanup; } if (!mongoc_uri_set_option_as_bool(uri, MONGOC_URI_TLS, true)) { fprintf(stderr, "Failed to set '%s'\n", MONGOC_URI_TLS); goto cleanup; } // Creates a new client client = mongoc_client_new_from_uri_with_error(uri, &error); if (!client) { fprintf(stderr, "%s\n", error.message); goto cleanup; } // Use client... cleanup: mongoc_client_destroy(client); mongoc_uri_destroy(uri);
Opciones de conexión
Las siguientes secciones describen las opciones de conexión disponibles en el controlador C y cómo especificarlas utilizando directamente una cadena de conexión o una opción URI.
Opciones del conjunto de réplicas
Conexión directa
Especifica si se debe forzar el envío de todas las operaciones al host. Si se especifica esta opción, el controlador no acepta el formato de conexión SRV. En su lugar, debe usar el formato de URI de conexión estándar. Para obtener más información sobre la conexión SRV y los formatos de conexión estándar, consulte la guía Cadenas de conexión.
El valor predeterminado es false. Esta propiedad debe establecerse en false si se especifica más de un nombre de host.
mongoc_uri_t *uri = mongoc_uri_new("mongodb://localhost:27017/?directConnection=true");
Set de réplicas
El nombre del conjunto de réplicas al que se conectará. El valor predeterminado es null.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?replicaSet=yourReplicaSet");
Conexión directa
Especifica si se debe forzar el envío de todas las operaciones al host. Si se especifica esta opción, el controlador no acepta el formato de conexión SRV. En su lugar, debe usar el formato de URI de conexión estándar. Para obtener más información sobre la conexión SRV y los formatos de conexión estándar, consulte la guía Cadenas de conexión.
El valor predeterminado es false. Esta propiedad debe establecerse en false si se especifica más de un nombre de host.
mongoc_uri_set_option_as_bool(uri, MONGOC_URI_DIRECTCONNECTION, true);
Set de réplicas
El nombre del conjunto de réplicas al que se conectará. El valor predeterminado es null.
mongoc_uri_set_option_as_utf8(uri, MONGOC_URI_REPLICASET, "yourReplicaSet");
Opciones de TLS
Habilitar TLS
Especifica si se debe requerir TLS para las conexiones al servidor. Si usas un esquema de "mongodb+srv" o especificas otras opciones de TLS, esta opción será por defecto true. En caso contrario, el valor será por defecto false.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?tls=true");
Permitir TLS inseguro
Especifica si se deben flexibilizar las restricciones TLS al máximo. Esto puede incluir la posibilidad de permitir certificados no válidos o nombres de host no coincidentes. El valor predeterminado es false.
El siguiente ejemplo de código muestra cómo establecer esta opción en true:
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?tls=true&tlsAllowInvalidCertificates=true");
Desactivar la comprobación de revocación de certificados TLS
Si se deshabilita la comprobación de revocación de certificados durante el protocolo de enlace TLS. El valor predeterminado es false.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?tls=true&tlsDisableCertificateRevocationCheck=true");
Opciones de SSL
Opciones de TLS/SSL, incluyendo certificados de cliente, gestión de revocaciones y protocolos TLS/SSL habilitados y deshabilitados. El valor predeterminado es null.
Esta opción solo se puede configurar mediante las opciones de URI. Para saber cómo configurar las opciones de SSL, consulte la sección "Opciones de SSL" en el... MongoC URI Option tab.
Habilitar TLS
Especifica si se debe requerir TLS para las conexiones al servidor. Si usas un esquema de "mongodb+srv" o especificas otras opciones de TLS, esta opción será por defecto true. En caso contrario, el valor será por defecto false.
mongoc_uri_set_option_as_bool(uri, MONGOC_URI_TLS, true);
Permitir TLS inseguro
Especifica si se deben flexibilizar las restricciones TLS al máximo. Esto puede incluir la posibilidad de permitir certificados no válidos o nombres de host no coincidentes. El valor predeterminado es false.
El siguiente ejemplo de código muestra cómo establecer esta opción en true:
mongoc_uri_set_option_as_bool(uri, MONGOC_URI_TLSINSECURE, true);
Desactivar la comprobación de revocación de certificados TLS
Si se deshabilita la comprobación de revocación de certificados durante el protocolo de enlace TLS. El valor predeterminado es false.
mongoc_uri_set_option_as_bool(uri, MONGOC_URI_TLSDISABLECERTIFICATEREVOCATIONCHECK, true);
Opciones de SSL
Opciones de TLS/SSL, incluyendo certificados de cliente, gestión de revocaciones y protocolos TLS/SSL habilitados y deshabilitados. El valor predeterminado es null.
Si SslSettings.CheckCertificateRevocation se establece en false y AllowInsecureTls se establece en true, el controlador C genera una excepción.
mongoc_client_t *client; mongoc_ssl_opt_t ssl_opts = {0}; ssl_opts.pem_file = "/path/to/client-cert.pem"; ssl_opts.pem_pwd = "password"; ssl_opts.ca_file = "/path/to/ca.pem"; ssl_opts.allow_invalid_hostname = false; mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?tls=true"); client = mongoc_client_new_from_uri(uri); mongoc_client_set_ssl_opts(client, &ssl_opts);
Para obtener más información sobre las opciones de TLS, consulte la Guíapara configurar la seguridad de la capa de transporte (TLS).
Opciones de tiempo de espera
Tiempo de espera de conexión
El tiempo que el controlador tarda en establecer una conexión de socket TCP con el servidor antes de agotar el tiempo de espera. El valor predeterminado es 10 segundos.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?connectTimeoutMS=60000");
Tiempo de espera del socket
El tiempo que el controlador intenta enviar o recibir datos en un socket antes de agotar el tiempo de espera. El valor predeterminado lo establece el sistema operativo.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?socketTimeoutMS=60000");
Tiempo de espera de conexión
El tiempo que el controlador tarda en establecer una conexión de socket TCP con el servidor antes de agotar el tiempo de espera. El valor predeterminado es 10 segundos.
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_CONNECTTIMEOUTMS, 60000);
Tiempo de espera del socket
El tiempo que el controlador intenta enviar o recibir datos en un socket antes de agotar el tiempo de espera. El valor predeterminado lo establece el sistema operativo.
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_SOCKETTIMEOUTMS, 60000);
Opciones de compresión
Compresores
Los tipos de compresión preferidos, en orden, para los mensajes de protocolo de cable enviados o recibidos del servidor. Puede habilitar "snappy", "zlib" y "zstd" como dependencias opcionales en tiempo de compilación. El controlador utiliza el primero de estos tipos de compresión que el servidor admita. El valor predeterminado está vacío.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?compressors=zlib,snappy");
Compresores
Los tipos de compresión preferidos, en orden, para los mensajes de protocolo de cable enviados o recibidos del servidor. Puede habilitar "snappy", "zlib" y "zstd" como dependencias opcionales en tiempo de compilación. El controlador utiliza el primero de estos tipos de compresión que el servidor admita. El valor predeterminado está vacío.
mongoc_uri_set_option_as_utf8(uri, MONGOC_URI_COMPRESSORS, "zlib,snappy");
Opciones del pool de conexiones
Tamaño máximo de la piscina
El número máximo de clientes o conexiones que el controlador puede crear en su grupo de conexiones. Este recuento incluye las conexiones en uso. El valor predeterminado es 100.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?maxPoolSize=150");
Tiempo de espera de la cola de espera
El tiempo que el controlador intenta verificar una conexión del grupo de conexiones de un servidor antes de que se agote el tiempo de espera.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?waitQueueTimeoutMS=30000");
Tamaño máximo del grupo de conexiones
El número máximo de clientes o conexiones que el controlador puede crear en su grupo de conexiones. Este recuento incluye las conexiones en uso. El valor predeterminado es 100.
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_MAXPOOLSIZE, 150)
También puede establecer el tamaño máximo del grupo de conexiones mediante una estructura mongoc_client_pool_t:
mongoc_client_pool_t *pool = mongoc_client_pool_new(uri); // Specifies max pool size mongoc_client_pool_max_size(pool, 150);
Tiempo de espera de la cola de espera
El tiempo que el controlador intenta verificar una conexión del grupo de conexiones de un servidor antes de que se agote el tiempo de espera.
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_WAITQUEUETIMEOUTMS, 30000);
Para obtener más información sobre los grupos de conexiones, consulte la guía Grupos de conexiones.
Opciones de nivel de confirmación de escritura
w
El w componente de la solicitud de escritura, que solicita confirmación de que la operación de escritura se ha propagado a un número específico de instancias de MongoDB. El valor predeterminado es "majority" 1o, según el número de árbitros y nodos con derecho a voto. Para obtener más información sobre la w opción, consulte la sección "Respuesta de escritura" en el manual del servidor MongoDB.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?w=2");
w Tiempo de espera
El wtimeoutms componente de la solicitud de escritura, que especifica un límite de tiempo para dicha solicitud. Para obtener más información sobre la wtimeout opción, consulte "Solicitud de escritura" en el manual de MongoDB Server.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?wTimeoutMS=5000");
Journal
El j componente del problema de escritura, que solicita confirmación de que las instancias de MongoDB han escrito en el diario en disco. El valor predeterminado depende del valor de la writeConcernMajorityJournalDefault configuración. Para obtener más información sobre la j opción, consulte "Problema de escritura" en el manual del servidor MongoDB.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?journal=true");
w
El w componente de la solicitud de escritura, que solicita confirmación de que la operación de escritura se ha propagado a un número específico de instancias de MongoDB. El valor predeterminado es "majority" 1o, según el número de árbitros y nodos con derecho a voto. Para obtener más información sobre la w opción, consulte la sección "Respuesta de escritura" en el manual del servidor MongoDB.
Puede configurar w utilizando la opción MONGOC_URI_W:
// Use the int32 version of the mongoc_uri_t set function to set integer values mongoc_uri_set_option_as_int32(uri, MONGOC_URI_W, 2); // Use the utf8 version of the mongoc_uri_t set function to set string values mongoc_uri_set_option_as_utf8(uri, MONGOC_URI_W, "majority");
También puedes establecer w utilizando una estructura mongoc_write_concern_t:
// Creates a write concern structure mongoc_write_concern_t *write_concern = mongoc_write_concern_new(); // Sets w=2 mongoc_write_concern_set_w(write_concern, 2); mongoc_client_set_write_concern(client, write_concern);
w Tiempo de espera
El wtimeoutms componente de la solicitud de escritura, que especifica un límite de tiempo para dicha solicitud. Para obtener más información sobre la wtimeout opción, consulte "Solicitud de escritura" en el manual de MongoDB Server.
Puede configurar wtimeoutms utilizando la opción MONGOC_URI_WTIMEOUTMS:
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_WTIMEOUTMS, 5000);
También puedes establecer wtimeoutms utilizando una estructura mongoc_write_concern_t:
// Creates a write concern structure mongoc_write_concern_t *write_concern = mongoc_write_concern_new(); // Sets w=2 mongoc_write_concern_set_wtimeout(write_concern, 5000); // Apply write concern to client mongoc_client_set_write_concern(client, write_concern);
Journal
El j componente del problema de escritura, que solicita confirmación de que las instancias de MongoDB han escrito en el diario en disco. El valor predeterminado depende del valor de la writeConcernMajorityJournalDefault configuración. Para obtener más información sobre la j opción, consulte "Problema de escritura" en el manual del servidor MongoDB.
Puede configurar journal utilizando la opción MONGOC_URI_JOURNAL:
mongoc_uri_set_option_as_bool(uri, MONGOC_URI_JOURNAL, true);
También puedes establecer journal utilizando una estructura mongoc_write_concern_t:
// Creates a write concern structure mongoc_write_concern_t *write_concern = mongoc_write_concern_new(); // Sets journal to true mongoc_write_concern_set_journal(write_concern, true); // Apply write concern to client mongoc_client_set_write_concern(client, write_concern);
Opciones de lectura de inquietudes
Leer el nivel de preocupación
Nivel de preocupación de lectura del cliente. Para más información, consulte la referencia de preocupación de lectura en el manual de MongoDB Server.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?readConcernLevel=local");
Leer el nivel de preocupación
Nivel de preocupación de lectura del cliente. Para más información, consulte la referencia de preocupación de lectura en el manual de MongoDB Server.
Puede establecer el nivel de preocupación de lectura utilizando la opción MONGOC_URI_READCONCERNLEVEL:
mongoc_uri_set_option_as_utf8(uri, MONGOC_URI_READCONCERNLEVEL, "local")
También puede establecer el nivel de preocupación de lectura mediante una estructura mongoc_read_concern_t:
mongoc_read_concern_t *read_concern = mongoc_read_concern_new(); // Set the read concern level to "local" mongoc_read_concern_set_level(read_concern, MONGOC_READ_CONCERN_LEVEL_LOCAL); mongoc_client_set_read_concern(client, read_concern);
Opciones de preferencia de lectura
preferencia de lectura
Configuración predeterminada de preferencias de lectura del cliente. El valor predeterminado primary es. Consulte "Preferencias de lectura" en el manual del servidor MongoDB para obtener más información.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?readPreference=primaryPreferred");
Max Staleness
"Máximo de segundos de obsolescencia" representa el mayor retraso de replicación, en tiempo real, que un servidor secundario puede experimentar sin que se le pueda seleccionar. El valor mínimo permitido para maxStalenessSeconds es 90 segundos. Esta opción debe usarse con una preferencia de lectura distinta a la principal.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?readPreference=secondary&maxStalenessSeconds=120");
Umbral local
La ventana de latencia para la elegibilidad del servidor. Si el tiempo de ida y vuelta de un servidor es mayor que el del servidor más rápido más este valor, el servidor no es elegible. El valor predeterminado es 15 milisegundos.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?localThresholdMS=150");
preferencia de lectura
Configuración predeterminada de preferencias de lectura del cliente. El valor predeterminado primary es. Consulte "Preferencias de lectura" en el manual del servidor MongoDB para obtener más información.
Puede establecer la preferencia de lectura utilizando una estructura mongoc_read_prefs_t:
mongoc_client_t *client = mongoc_client_new("mongodb+srv://localhost:27017/"); // Specifies the read preference mongoc_read_prefs_t *read_prefs = mongoc_read_prefs_new(MONGOC_READ_PRIMARY_PREFERRED); mongoc_client_set_read_prefs(client, read_prefs);
También puedes configurar la preferencia de lectura utilizando la opción MONGOC_URI_READPREFERENCE:
mongoc_uri_set_option_as_utf8(uri, MONGOC_URI_READPREFERENCE, "primaryPreferred")
Max Staleness
"Máximo de segundos de obsolescencia" representa el mayor retraso de replicación, en tiempo real, que un servidor secundario puede experimentar sin que se le pueda seleccionar. El valor mínimo permitido para maxStalenessSeconds es 90 segundos. Esta opción debe usarse con una preferencia de lectura distinta a la principal.
Puede establecer el tiempo máximo de obsolescencia utilizando la opción MONGOC_URI_MAXSTALENESSSECONDS:
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_MAXSTALENESSSECONDS, 120);
También puedes establecer el tiempo máximo de obsolescencia mediante una estructura mongoc_read_prefs_t:
mongoc_client_t *client = mongoc_client_new("mongodb+srv://localhost:27017/"); mongoc_read_prefs_t *read_prefs = mongoc_read_prefs_new(MONGOC_READ_SECONDARY); // Specifies max staleness to 120 seconds mongoc_read_prefs_set_max_staleness_seconds(read_prefs, 120); mongoc_client_set_read_prefs(client, read_prefs);
Umbral local
La ventana de latencia para la elegibilidad del servidor. Si el tiempo de ida y vuelta de un servidor es mayor que el del servidor más rápido más este valor, el servidor no es elegible. El valor predeterminado es 15 milisegundos.
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_LOCALTHRESHOLDMS, 150);
Opciones de autenticación
Mecanismo de autenticación
El mecanismo que utiliza el controlador para autenticarse en MongoDB Server. Si no especifica un mecanismo de autenticación, el controlador utiliza SCRAM-SHA-1 SCRAM-SHA-256o, según la versión del servidor. Para obtener más información sobre los mecanismos de autenticación disponibles, consulte la guía "Mecanismos de autenticación" o "Mecanismos de autenticación empresarial".
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?authSource=admin&authMechanism=GSSAPI");
Mecanismo de autenticación
El mecanismo que utiliza el controlador para autenticarse en MongoDB Server. Si no especifica un mecanismo de autenticación, el controlador utiliza SCRAM-SHA-1 SCRAM-SHA-256o, según la versión del servidor. Para obtener más información sobre los mecanismos de autenticación disponibles, consulte la guía "Mecanismos de autenticación" o "Mecanismos de autenticación empresarial".
mongoc_uri_set_auth_mechanism(uri, "GSSAPI");
Opciones de selección y descubrimiento de servidores
Frecuencia de los latidos del corazón
El intervalo entre las comprobaciones de monitorización del servidor. Debe ser mayor o igual a 500 milisegundos. El valor predeterminado es 10000 ms (10 segundos) en modo agrupado (multihilo) y 60000 ms (60 segundos) en modo no agrupado (monohilo).
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?heartbeatFrequencyMS=5000");
Tiempo de espera de selección de servidor
El tiempo que el controlador intenta seleccionar un servidor antes de agotar el tiempo de espera. El valor predeterminado es 30000 ms (30 segundos).
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?serverSelectionTimeoutMS=40000");
Intervalo de comprobación del zócalo
Solo se aplica a clientes de un solo subproceso. Si no se ha utilizado un socket durante este tiempo, el controlador comprueba la conexión con una breve llamada de "hola" antes de volver a utilizarla. El valor predeterminado es 5000 ms (5 segundos).
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?socketCheckIntervalMS=10000");
Frecuencia de los latidos del corazón
El intervalo entre las comprobaciones de monitorización del servidor. Debe ser mayor o igual a 500 milisegundos. El valor predeterminado es 10000 ms (10 segundos) en modo agrupado (multihilo) y 60000 ms (60 segundos) en modo no agrupado (monohilo).
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_HEARTBEATFREQUENCYMS, 5000);
Tiempo de espera de selección de servidor
El tiempo que el controlador intenta seleccionar un servidor antes de agotar el tiempo de espera. El valor predeterminado es 30000 ms (30 segundos).
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_SERVERSELECTIONTIMEOUTMS, 40000);
Intervalo de comprobación del zócalo
Solo se aplica a clientes de un solo subproceso. Si no se ha utilizado un socket durante este tiempo, el controlador comprueba la conexión con una breve llamada de "hola" antes de volver a utilizarla. El valor predeterminado es 5000 ms (5 segundos).
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_SOCKETCHECKINTERVALMS, 10000);
Opciones de reintentos
Reintentar lecturas
Permite realizar lecturas reintentables. El valor predeterminado es true.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?retryReads=false");
Reintentar escrituras
Permite escrituras reintentables. El valor predeterminado es true.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?retryWrites=false");
Reintentar lecturas
Permite realizar lecturas reintentables. El valor predeterminado es true.
mongoc_uri_set_option_as_bool(uri, MONGOC_URI_RETRYREADS, false)
Reintentar escrituras
Permite escrituras reintentables. El valor predeterminado es true.
mongoc_uri_set_option_as_bool(uri, MONGOC_URI_RETRYWRITES, false);
Opciones misceláneas
Nombre de la aplicación
El nombre de la aplicación que el controlador pasa al servidor en los metadatos del cliente como parte del protocolo de enlace de la conexión. El servidor imprime este valor en los registros de MongoDB una vez establecida la conexión. El valor también se registra en los registros de consultas lentas y en las colecciones de perfiles. El valor predeterminado está vacío.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?appName=yourAppName");
Carga equilibrada
Especifica si el controlador se conecta a un balanceador de carga. Esta propiedad solo se puede establecer en true si se cumplen todas las condiciones siguientes:
Solo especifica un nombre de host
No te estás conectando a un conjunto de réplicas
No estás utilizando la propiedad
SrvMaxHostsNo estás utilizando la propiedad
DirectConnection
El valor por defecto es false.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?loadBalanced=true");
Hosts SrvMax
El mayor número de resultados SRV que se seleccionan aleatoriamente al rellenar la lista de semillas o, durante el sondeo de SRV, al añadir nuevos hosts a la topología. El valor predeterminado es 0.
Esta propiedad solo se puede usar si el esquema de la cadena de conexión está establecido en ConnectionStringScheme.MongoDBPlusSrv. No se puede usar al conectarse a un conjunto de réplicas.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?srvMaxHosts=5");
Nombre de la aplicación
El nombre de la aplicación que el controlador pasa al servidor en los metadatos del cliente como parte del protocolo de enlace de la conexión. El servidor imprime este valor en los registros de MongoDB una vez establecida la conexión. El valor también se registra en los registros de consultas lentas y en las colecciones de perfiles. El valor predeterminado está vacío.
mongoc_uri_set_option_as_utf8(uri, MONGOC_URI_APPNAME, "yourAppName");
Carga equilibrada
Especifica si el controlador se conecta a un balanceador de carga. Esta propiedad solo se puede establecer en true si se cumplen todas las condiciones siguientes:
Solo especifica un nombre de host
No te estás conectando a un conjunto de réplicas
No estás utilizando la propiedad
SrvMaxHostsNo estás utilizando la propiedad
DirectConnection
El valor por defecto es false.
mongoc_uri_set_option_as_bool(uri, MONGOC_URI_LOADBALANCED, true);
Hosts SrvMax
El mayor número de resultados SRV que se seleccionan aleatoriamente al rellenar la lista de semillas o, durante el sondeo de SRV, al añadir nuevos hosts a la topología. El valor predeterminado es 0.
Esta propiedad solo se puede usar si el esquema de la cadena de conexión está establecido en ConnectionStringScheme.MongoDBPlusSrv. No se puede usar al conectarse a un conjunto de réplicas.
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_SRVMAXHOSTS, 5);
Información Adicional
Para obtener más información sobre los tipos utilizados en esta página, consulte la siguiente documentación de la API: