Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Especifica opciones de conexión

Esta página describe las opciones de conexión disponibles en el driver C y explica cómo aplicarlas a tu conexión de MongoDB.

Las siguientes secciones describen las formas en las que puedes especificar las opciones de conexión.

Si se pasa una cadena de conexión a monogoc_client_t estructura, puedes incluir opciones de conexión en la string como pares de <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 puedes especificar en una cadena de conexión, consulta Opciones de cadena de conexión en el manual del servidor MongoDB.

Puedes utilizar opciones URI para configurar los ajustes de 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 proporciona más opciones de configuración que la cadena de conexión.

Para configurar las opciones de conexión utilizando la opción URI, realiza los siguientes pasos:

  1. Crea una estructura mongoc_uri_t con tu cadena de conexión

  2. Se puede usar una función de configuración de URI para indicar la opción de conexión deseada

  3. Crea un nuevo cliente con el URI pasando el 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);

Las siguientes secciones describen las opciones de conexión disponibles en el controlador C y cómo especificarlas mediante una cadena de conexión directa o una opción URI.

Especifica si se debe forzar el envío de todas las operaciones al host. Si 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 de Cadenas de conexión.

El valor por defecto es false. Esta propiedad debe configurarse como false sí especifica más de un nombre de Host.

mongoc_uri_t *uri = mongoc_uri_new("mongodb://localhost:27017/?directConnection=true");

El nombre del set de réplicas al que se desea conectar. El valor por defecto es null.

mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?replicaSet=yourReplicaSet");

Especifica si se debe forzar el envío de todas las operaciones al host. Si 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 de Cadenas de conexión.

El valor por defecto es false. Esta propiedad debe configurarse como false sí especifica más de un nombre de Host.

mongoc_uri_set_option_as_bool(uri, MONGOC_URI_DIRECTCONNECTION, true);

El nombre del set de réplicas al que se desea conectar. El valor por defecto es null.

mongoc_uri_set_option_as_utf8(uri, MONGOC_URI_REPLICASET, "yourReplicaSet");

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");

Especifica si se deben relajar las restricciones de TLS tanto como sea posible. Esto puede incluir permitir certificados no válidos o discrepancias de nombres de host. El valor por defecto 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");

Si se debe deshabilitar la comprobación de revocación de certificados durante el apretón de manos TLS. El valor por defecto es false.

mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?tls=true&tlsDisableCertificateRevocationCheck=true");

Opciones de TLS/SSL, incluyendo certificados de cliente, gestión de revocaciones y protocolos de TLS/SSL habilitados y deshabilitados. El valor por defecto es null.

Esta opción solo puede establecerse mediante Opciones URI. Para aprender cómo configurar las opciones de SSL, consulta la sección Opciones de SSL en la MongoC URI Option tab.

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);

Especifica si se deben relajar las restricciones de TLS tanto como sea posible. Esto puede incluir permitir certificados no válidos o discrepancias de nombres de host. El valor por defecto 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);

Si se debe deshabilitar la comprobación de revocación de certificados durante el apretón de manos TLS. El valor por defecto es false.

mongoc_uri_set_option_as_bool(uri, MONGOC_URI_TLSDISABLECERTIFICATEREVOCATIONCHECK, true);

Opciones de TLS/SSL, incluyendo certificados de cliente, gestión de revocaciones y protocolos de TLS/SSL habilitados y deshabilitados. El valor por defecto es null.

Si SslSettings.CheckCertificateRevocation se establece en false y AllowInsecureTls se establece en true, el driver de C lanza 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 más información sobre las opciones de TLS, consulta el Guía para configurar la Seguridad de capa de transporte (TLS).

La duración de tiempo que el driver intenta establecer una sola conexión de socket TCP con el servidor antes de agotar el tiempo de espera. El valor por defecto es de 10 segundos.

mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?connectTimeoutMS=60000");

La duración de tiempo que el controlador intenta enviar o recibir a través de un socket antes de exceder el tiempo de espera. El sistema operativo establece el valor por defecto.

mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?socketTimeoutMS=60000");

La duración de tiempo que el driver intenta establecer una sola conexión de socket TCP con el servidor antes de agotar el tiempo de espera. El valor por defecto es de 10 segundos.

mongoc_uri_set_option_as_int32(uri, MONGOC_URI_CONNECTTIMEOUTMS, 60000);

La duración de tiempo que el controlador intenta enviar o recibir a través de un socket antes de exceder el tiempo de espera. El sistema operativo establece el valor por defecto.

mongoc_uri_set_option_as_int32(uri, MONGOC_URI_SOCKETTIMEOUTMS, 60000);

Los tipos de compresión preferidos, en orden, para los mensajes del protocolo de conexión enviados al 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 admite el servidor. El valor por defecto está vacío.

mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?compressors=zlib,snappy");

Los tipos de compresión preferidos, en orden, para los mensajes del protocolo de conexión enviados al 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 admite el servidor. El valor por defecto está vacío.

mongoc_uri_set_option_as_utf8(uri, MONGOC_URI_COMPRESSORS, "zlib,snappy");

El mayor número de clientes o conexiones que el controlador puede crear en su pool de conexiones. Este recuento incluye las conexiones en uso. El valor por defecto es 100.

mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?maxPoolSize=150");

El tiempo que el driver intenta extraer una conexión del pool de conexiones del servidor antes de que caduque.

mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?waitQueueTimeoutMS=30000");

El mayor número de clientes o conexiones que el controlador puede crear en su pool de conexiones. Este recuento incluye las conexiones en uso. El valor por defecto es 100.

mongoc_uri_set_option_as_int32(uri, MONGOC_URI_MAXPOOLSIZE, 150)

También puedes establecer el tamaño máximo del pool de conexiones utilizando 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);

El tiempo que el driver intenta extraer una conexión del pool de conexiones del servidor antes de que caduque.

mongoc_uri_set_option_as_int32(uri, MONGOC_URI_WAITQUEUETIMEOUTMS, 30000);

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

El componente w del nivel de confirmación de escritura (write concern), que solicita el reconocimiento de que la operación de escritura se ha propagado a un número especificado de instancias de MongoDB. El valor por defecto es "majority" o 1, dependiendo del número de árbitros y nodos de votación. Para obtener más información sobre la opción w, consulta nivel de confirmación de escritura (write concern) en el manual de MongoDB Server.

mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?w=2");

El wtimeoutms componente del nivel de confirmación de escritura (write concern), que especifica un límite de tiempo para el nivel de confirmación de escritura (write concern). Para obtener más información sobre la opción wtimeout, consulta nivel de confirmación de escritura (Write Concern) en el manual de MongoDB Server.

mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?wTimeoutMS=5000");

El componente j del nivel de confirmación de escritura (write concern), que solicita el reconocimiento de que las instancias de MongoDB han escrito en el diario en disco. El valor por defecto depende del valor de la configuración writeConcernMajorityJournalDefault. Para aprender más sobre la opción j, consulta Write Concern en el manual del servidor de MongoDB.

mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?journal=true");

El componente w del nivel de confirmación de escritura (write concern), que solicita el reconocimiento de que la operación de escritura se ha propagado a un número especificado de instancias de MongoDB. El valor por defecto es "majority" o 1, dependiendo del número de árbitros y nodos de votación. Para obtener más información sobre la opción w, consulta nivel de confirmación de escritura (write concern) en el manual de MongoDB Server.

Puedes establecer 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 puede configurar 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);

El wtimeoutms componente del nivel de confirmación de escritura (write concern), que especifica un límite de tiempo para el nivel de confirmación de escritura (write concern). Para obtener más información sobre la opción wtimeout, consulta nivel de confirmación de escritura (Write Concern) en el manual de MongoDB Server.

Puedes establecer wtimeoutms utilizando la opción MONGOC_URI_WTIMEOUTMS:

mongoc_uri_set_option_as_int32(uri, MONGOC_URI_WTIMEOUTMS, 5000);

También puede configurar 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);

El componente j del nivel de confirmación de escritura (write concern), que solicita el reconocimiento de que las instancias de MongoDB han escrito en el diario en disco. El valor por defecto depende del valor de la configuración writeConcernMajorityJournalDefault. Para aprender más sobre la opción j, consulta Write Concern en el manual del servidor de MongoDB.

Puedes establecer journal utilizando la opción MONGOC_URI_JOURNAL:

mongoc_uri_set_option_as_bool(uri, MONGOC_URI_JOURNAL, true);

También puede configurar 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);

El nivel de consistencia de lectura del cliente. Para obtener más información, consulte la referencia de nivel de consistencia de lectura en el manual de MongoDB Server.

mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?readConcernLevel=local");

El nivel de consistencia de lectura del cliente. Para obtener más información, consulte la referencia de nivel de consistencia de lectura en el manual de MongoDB Server.

Puedes configurar el nivel de consistencia de lectura utilizando la opción MONGOC_URI_READCONCERNLEVEL:

mongoc_uri_set_option_as_utf8(uri, MONGOC_URI_READCONCERNLEVEL, "local")

También puedes configurar el nivel de consistencia de lectura utilizando 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);

Los ajustes de preferencia de lectura por defecto del cliente. El valor por defecto es primary. Consulta Preferencias de lectura en el manual de MongoDB Server para obtener más información.

mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?readPreference=primaryPreferred");

Los Segundos Máximos de Antigüedad representan el mayor atraso de la replicación, en tiempo de reloj, que una secundaria puede experimentar y seguir siendo elegible para la selección del servidor. El valor mínimo permitido para maxStalenessSeconds es 90 segundos. Esta opción debe usarse con una preferencia de lectura distinta a la primaria.

mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?readPreference=secondary&maxStalenessSeconds=120");

La ventana de latencia para la elegibilidad del servidor. Si el tiempo de viaje de ida y vuelta de un servidor es más largo que el tiempo de viaje de ida y vuelta del servidor más rápido más este valor, el servidor no es elegible para la selección. El valor por defecto es de 15 milisegundos.

mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?localThresholdMS=150");

Los ajustes de preferencia de lectura por defecto del cliente. El valor por defecto es primary. Consulta Preferencias de lectura en el manual de MongoDB Server para obtener más información.

Puedes 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 establecer la preferencia de lectura utilizando la opción MONGOC_URI_READPREFERENCE:

mongoc_uri_set_option_as_utf8(uri, MONGOC_URI_READPREFERENCE, "primaryPreferred")

Los Segundos Máximos de Antigüedad representan el mayor atraso de la replicación, en tiempo de reloj, que una secundaria puede experimentar y seguir siendo elegible para la selección del servidor. El valor mínimo permitido para maxStalenessSeconds es 90 segundos. Esta opción debe usarse con una preferencia de lectura distinta a la primaria.

Puede establecer la máxima obsolescencia utilizando la opción MONGOC_URI_MAXSTALENESSSECONDS:

mongoc_uri_set_option_as_int32(uri, MONGOC_URI_MAXSTALENESSSECONDS, 120);

También puedes establecer el máximo de obsolescencia utilizando 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);

La ventana de latencia para la elegibilidad del servidor. Si el tiempo de viaje de ida y vuelta de un servidor es más largo que el tiempo de viaje de ida y vuelta del servidor más rápido más este valor, el servidor no es elegible para la selección. El valor por defecto es de 15 milisegundos.

mongoc_uri_set_option_as_int32(uri, MONGOC_URI_LOCALTHRESHOLDMS, 150);

El mecanismo que el driver utiliza para autenticarse en el MongoDB Server. Si no se especifica un mecanismo de autenticación, el controlador utiliza SCRAM-SHA-1 o SCRAM-SHA-256, según la versión del servidor. Para obtener más información sobre los mecanismos de autenticación disponibles, consulta la Mecanismos de autenticación o la guía Mecanismos de autenticación empresarial.

mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?authSource=admin&authMechanism=GSSAPI");

El mecanismo que el driver utiliza para autenticarse en el MongoDB Server. Si no se especifica un mecanismo de autenticación, el controlador utiliza SCRAM-SHA-1 o SCRAM-SHA-256, según la versión del servidor. Para obtener más información sobre los mecanismos de autenticación disponibles, consulta la Mecanismos de autenticación o la guía Mecanismos de autenticación empresarial.

mongoc_uri_set_auth_mechanism(uri, "GSSAPI");

El intervalo entre las verificaciones de supervisión del servidor. Debe ser mayor o igual a 500 milisegundos. El valor por defecto es 10000 ms (10 segundos) en modo agrupado (multihilo) y 60000 ms (60 segundos) en modo no agrupado (de un solo hilo).

mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?heartbeatFrequencyMS=5000");

El tiempo que el controlador intenta seleccionar un servidor antes de agotar el tiempo de espera. El valor por defecto es 30000 ms (30 segundos).

mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?serverSelectionTimeoutMS=40000");

Solo se aplica a clientes de un solo hilo. Si un socket no se ha utilizado en este tiempo, el driver comprueba la conexión con una rápida llamar "hello" antes de volver a utilizarlo. Por defecto, 5000 ms (5 segundos).

mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?socketCheckIntervalMS=10000");

El intervalo entre las verificaciones de supervisión del servidor. Debe ser mayor o igual a 500 milisegundos. El valor por defecto es 10000 ms (10 segundos) en modo agrupado (multihilo) y 60000 ms (60 segundos) en modo no agrupado (de un solo hilo).

mongoc_uri_set_option_as_int32(uri, MONGOC_URI_HEARTBEATFREQUENCYMS, 5000);

El tiempo que el controlador intenta seleccionar un servidor antes de agotar el tiempo de espera. El valor por defecto es 30000 ms (30 segundos).

mongoc_uri_set_option_as_int32(uri, MONGOC_URI_SERVERSELECTIONTIMEOUTMS, 40000);

Solo se aplica a clientes de un solo hilo. Si un socket no se ha utilizado en este tiempo, el driver comprueba la conexión con una rápida llamar "hello" antes de volver a utilizarlo. Por defecto, 5000 ms (5 segundos).

mongoc_uri_set_option_as_int32(uri, MONGOC_URI_SOCKETCHECKINTERVALMS, 10000);

Activar las lecturas reintentables. El valor por defecto es true.

mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?retryReads=false");

Activar las escrituras reintentables. El valor por defecto es true.

mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?retryWrites=false");

Activar las lecturas reintentables. El valor por defecto es true.

mongoc_uri_set_option_as_bool(uri, MONGOC_URI_RETRYREADS, false)

Activar las escrituras reintentables. El valor por defecto es true.

mongoc_uri_set_option_as_bool(uri, MONGOC_URI_RETRYWRITES, false);

Nota

Limitación de velocidad adaptativa

Si los errores con etiquetas SystemOverloadedError o RetryableError provocan fallos en su aplicación o aparecen en los registros de la misma, es posible que su controlador no esté actualizado a una versión compatible con la limitación de velocidad adaptativa. Le recomendamos actualizar su controlador C de MongoDB a la versión 2.3 o posterior. Si estos errores persisten tras la actualización, puede solucionarlos mediante cambios en el servidor, como revisar la configuración de Intelligent Workload Management (IWM), o mediante cambios en la aplicación, como implementar un manejo de errores personalizado o limitar las solicitudes del cliente. Según su situación, los cambios en la aplicación pueden ser preferibles o necesarios.

La limitación de velocidad adaptativa ayuda a gestionar la carga del servidor ajustando dinámicamente la frecuencia de las solicitudes en función de las condiciones actuales. Esta función está disponible en MongoDB 8.3 y versiones posteriores.

Para obtener más información sobre IWM, consulte la página de Fiabilidad, Disponibilidad y Gestión de Carga de Trabajo o la página de Errores de Sobrecarga en la documentación de Atlas.

El nombre de la aplicación que el controlador pasa al servidor en los metadatos del cliente como parte del proceso de conexión. El servidor imprime este valor en los registros de MongoDB una vez que establece la conexión. El valor también se registra en los registros de query lentas y en las colecciones de perfiles. El valor por defecto está vacío.

mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?appName=yourAppName");

Especifica si el driver se está conectando a un balanceador de carga. Puede establecer esta propiedad en true solo si se cumplen todas las siguientes condiciones:

  • Solo especifica un nombre de host

  • No estás conectándote a un set de réplicas.

  • No estás utilizando la propiedad SrvMaxHosts

  • No 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");

El mayor número de resultados de SRV que se seleccionarán al azar al rellenar inicialmente la lista de nodos iniciales o, durante la exploración de SRV, al añadir nuevos hosts a la topología. El valor por defecto es 0.

Puedes usar esta propiedad solo si el esquema de la cadena de conexión está establecido en ConnectionStringScheme.MongoDBPlusSrv. No se puede utilizar al conectarse a un set de réplicas.

mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?srvMaxHosts=5");

El nombre de la aplicación que el controlador pasa al servidor en los metadatos del cliente como parte del proceso de conexión. El servidor imprime este valor en los registros de MongoDB una vez que establece la conexión. El valor también se registra en los registros de query lentas y en las colecciones de perfiles. El valor por defecto está vacío.

mongoc_uri_set_option_as_utf8(uri, MONGOC_URI_APPNAME, "yourAppName");

Especifica si el driver se está conectando a un balanceador de carga. Puede establecer esta propiedad en true solo si se cumplen todas las siguientes condiciones:

  • Solo especifica un nombre de host

  • No estás conectándote a un set de réplicas.

  • No estás utilizando la propiedad SrvMaxHosts

  • No estás utilizando la propiedad DirectConnection

El valor por defecto es false.

mongoc_uri_set_option_as_bool(uri, MONGOC_URI_LOADBALANCED, true);

El mayor número de resultados de SRV que se seleccionarán al azar al rellenar inicialmente la lista de nodos iniciales o, durante la exploración de SRV, al añadir nuevos hosts a la topología. El valor por defecto es 0.

Puedes usar esta propiedad solo si el esquema de la cadena de conexión está establecido en ConnectionStringScheme.MongoDBPlusSrv. No se puede utilizar al conectarse a un set de réplicas.

mongoc_uri_set_option_as_int32(uri, MONGOC_URI_SRVMAXHOSTS, 5);

Para obtener más información sobre los tipos utilizados en esta página, consulte la siguiente documentación de la API:

Volver

Crea un MongoClient