Visão geral
Esta página descreve as opções de conexão disponíveis no driver C e explica como aplicá-las à sua conexão MongoDB.
Como especificar opções de conexão
As seções a seguir descrevem maneiras de especificar opções de conexão.
Use a string de conexão
Se você passar uma string de conexão para a estrutura monogoc_client_t, poderá incluir opções de conexão na string como <name>=<value> pares. No exemplo a seguir , a string de conexão contém a opção connectTimeoutMS com um valor de 60000 e a opção tls com um valor de true:
mongoc_init();
// Specifies the connection options in the connection stringconst char *uri = "mongodb+srv://localhost:27017/?connectTimeoutMS=60000&tls=true";
// Creates a new clientmongoc_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 saber mais sobre as opções que você pode especificar em uma string de conexão, consulte Opções de string de conexão no manual do MongoDB Server.
Usar a API de opções de URI
Você pode usar opções de URI para definir as configurações de conexão no código em vez de em uma string de conexão. Configurar a conexão dessa forma facilita a alteração das configurações no tempo de execução, ajuda a detectar erros durante a compilação e fornece mais opções de configuração do que a string de conexão.
Para definir opções de conexão usando a opção URI, execute as seguintes etapas:
Crie uma estrutura
mongoc_uri_tcom sua string de conexãoUse uma função de opção de URI para especificar a opção de conexão desejada
Crie um novo cliente com o URI passando o URI para
mongoc_client_new_from_uri()
O seguinte exemplo de código mostra como executar as etapas 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 APIif (!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 clientclient = 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);Opções de conexão
As seções a seguir descrevem as opções de conexão disponíveis no driver C e como especificá-las usando uma string de conexão diretamente ou uma opção de URI.
Opções de conjunto de réplicas
Conexão direta
Especifica se todas as operações devem ser forçadas a serem despachadas para o hospedar. Se você especificar esta opção, o driver não aceitará o formato de conexão SRV. Em vez disso, você deve usar o formato URI de conexão padrão. Para saber mais sobre a conexão SRV e os formatos de conexão padrão, consulte o guia strings de conexão.
O valor padrão é false. Esta propriedade deve ser configurada para false se você especificar mais de um nome de host.
mongoc_uri_t *uri = mongoc_uri_new("mongodb://localhost:27017/?directConnection=true");Conjunto de réplicas
O nome do conjunto de réplicas a que se conectar. O valor padrão é null.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?replicaSet=yourReplicaSet");Conexão direta
Especifica se todas as operações devem ser forçadas a serem despachadas para o hospedar. Se você especificar esta opção, o driver não aceitará o formato de conexão SRV. Em vez disso, você deve usar o formato URI de conexão padrão. Para saber mais sobre a conexão SRV e os formatos de conexão padrão, consulte o guia strings de conexão.
O valor padrão é false. Esta propriedade deve ser configurada para false se você especificar mais de um nome de host.
mongoc_uri_set_option_as_bool(uri, MONGOC_URI_DIRECTCONNECTION, true);Conjunto de réplicas
O nome do conjunto de réplicas a que se conectar. O valor padrão é null.
mongoc_uri_set_option_as_utf8(uri, MONGOC_URI_REPLICASET, "yourReplicaSet");Opções de TLS
Habilitar TLS
Especifica se é necessário o TLS para conexões com o servidor. Se você usar um esquema de "mongodb+srv" ou especificar outras opções de TLS, essa opção será padronizada como true. Caso contrário, o padrão é false.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?tls=true");Permitir TLS Inseguro
Especifica se as restrições TLS devem ser relaxadas tanto quanto possível. Isso pode incluir permitir certificados inválidos ou incompatibilidades de nomes de host. O valor padrão é false.
O seguinte exemplo de código mostra como definir esta opção para true:
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?tls=true&tlsAllowInvalidCertificates=true");Verificação de revogação de certificado de desativação do TLS
Se a verificação de revogação de certificado deve ser desabilitada durante a negociação TLS. O valor padrão é false.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?tls=true&tlsDisableCertificateRevocationCheck=true");Opções SSL
Opções de TLS/SSL, incluindo certificados de cliente , manuseio de revogação e protocolos TLS/SSL habilitados e desabilitados. O valor padrão é null.
Essa opção só pode ser definida usando Opções de URI. Para aprender como definir opções de SSL, consulte a seção Opções de SSL na aba MongoC URI Option.
Habilitar TLS
Especifica se é necessário o TLS para conexões com o servidor. Se você usar um esquema de "mongodb+srv" ou especificar outras opções de TLS, essa opção será padronizada como true. Caso contrário, o padrão é false.
mongoc_uri_set_option_as_bool(uri, MONGOC_URI_TLS, true);Permitir TLS Inseguro
Especifica se as restrições TLS devem ser relaxadas tanto quanto possível. Isso pode incluir permitir certificados inválidos ou incompatibilidades de nomes de host. O valor padrão é false.
O seguinte exemplo de código mostra como definir esta opção para true:
mongoc_uri_set_option_as_bool(uri, MONGOC_URI_TLSINSECURE, true);Verificação de revogação de certificado de desativação do TLS
Se a verificação de revogação de certificado deve ser desabilitada durante a negociação TLS. O valor padrão é false.
mongoc_uri_set_option_as_bool(uri, MONGOC_URI_TLSDISABLECERTIFICATEREVOCATIONCHECK, true);Opções SSL
Opções de TLS/SSL, incluindo certificados de cliente , manuseio de revogação e protocolos TLS/SSL habilitados e desabilitados. O valor padrão é null.
Se SslSettings.CheckCertificateRevocation estiver definido como false e AllowInsecureTls estiver definido como true, o driver C lançará uma exceção.
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 obter mais informações sobre as opções de TLS, consulte o guia Configurar o TLS (Transport Layer Security).
Opções de tempo limite
ConnectTimeout
O período de tempo em que o driver tenta estabelecer uma única conexão de soquete TCP com o servidor antes de atingir o tempo limite. O valor padrão é 10 segundos.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?connectTimeoutMS=60000");Tempo limite do soquete
O período de tempo em que o driver tenta enviar ou receber em um soquete antes de atingir o tempo limite. O valor padrão é definido pelo sistema operacional.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?socketTimeoutMS=60000");ConnectTimeout
O período de tempo em que o driver tenta estabelecer uma única conexão de soquete TCP com o servidor antes de atingir o tempo limite. O valor padrão é 10 segundos.
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_CONNECTTIMEOUTMS, 60000);Tempo limite do soquete
O período de tempo em que o driver tenta enviar ou receber em um soquete antes de atingir o tempo limite. O valor padrão é definido pelo sistema operacional.
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_SOCKETTIMEOUTMS, 60000);Opções de compressão
Compressores
Os tipos de compactação preferidos, em ordem, para mensagens de protocolo de conexão enviadas ou recebidas do servidor. Você pode ativar "snappy", "zlib" e "zstd" como dependências de tempo de compilação opcionais. O driver usa o primeiro desses tipos de compactação para os quais o servidor oferece suporte. O valor padrão está vazio.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?compressors=zlib,snappy");Compressores
Os tipos de compactação preferidos, em ordem, para mensagens de protocolo de conexão enviadas ou recebidas do servidor. Você pode ativar "snappy", "zlib" e "zstd" como dependências de tempo de compilação opcionais. O driver usa o primeiro desses tipos de compactação para os quais o servidor oferece suporte. O valor padrão está vazio.
mongoc_uri_set_option_as_utf8(uri, MONGOC_URI_COMPRESSORS, "zlib,snappy");Opções do pool de conexões
maxPoolSize
O maior número de clientes ou conexões que o driver pode criar em seu pool de conexões. Esta contagem inclui conexões em uso. O valor padrão é 100.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?maxPoolSize=150");Tempo limite da fila de espera
O período de tempo em que o driver tenta verificar uma conexão do pool de conexões de um servidor antes de atingir o tempo limite.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?waitQueueTimeoutMS=30000");MaxConnectionPoolSize
O maior número de clientes ou conexões que o driver pode criar em seu pool de conexões. Esta contagem inclui conexões em uso. O valor padrão é 100.
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_MAXPOOLSIZE, 150)Você também pode definir o tamanho máximo do pool de conexões usando uma estrutura 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);Tempo limite da fila de espera
O período de tempo em que o driver tenta verificar uma conexão do pool de conexões de um servidor antes de atingir o tempo limite.
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_WAITQUEUETIMEOUTMS, 30000);Para saber mais sobre pool de conexões, consulte o Guia de pool de conexões.
Opções de write concern
w
O componente w da preocupação de gravação, que solicita a confirmação de que a operação de escrita se propagou para um número específico de instâncias do MongoDB . O valor padrão é "majority" ou 1, dependendo do número de árbitros e nós de votação. Para saber mais sobre a opção w, consulte Write Concern no manual do MongoDB Server.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?w=2");tempo esgotado
O componente wtimeoutms da preocupação de gravação, que especifica um limite de tempo para a preocupação de gravação. Para saber mais sobre a opção wtimeout, consulte Write Concern no manual do MongoDB Server.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?wTimeoutMS=5000");Journal
O componente j do preocupação de gravação, que solicita a confirmação de que as instâncias do MongoDB foram escritas no diário no disco. O valor padrão depende do valor na configuração writeConcernMajorityJournalDefault. Para saber mais sobre a opção j, consulte Write Concern no manual do MongoDB Server.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?journal=true");w
O componente w da preocupação de gravação, que solicita a confirmação de que a operação de escrita se propagou para um número específico de instâncias do MongoDB . O valor padrão é "majority" ou 1, dependendo do número de árbitros e nós de votação. Para saber mais sobre a opção w, consulte Write Concern no manual do MongoDB Server.
Você pode definir w usando a opção MONGOC_URI_W:
// Use the int32 version of the mongoc_uri_t set function to set integer valuesmongoc_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"); Você também pode definir w usando uma estrutura mongoc_write_concern_t:
// Creates a write concern structuremongoc_write_concern_t *write_concern = mongoc_write_concern_new();
// Sets w=2mongoc_write_concern_set_w(write_concern, 2);
mongoc_client_set_write_concern(client, write_concern);tempo esgotado
O componente wtimeoutms da preocupação de gravação, que especifica um limite de tempo para a preocupação de gravação. Para saber mais sobre a opção wtimeout, consulte Write Concern no manual do MongoDB Server.
Você pode definir wtimeoutms usando a opção MONGOC_URI_WTIMEOUTMS:
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_WTIMEOUTMS, 5000); Você também pode definir wtimeoutms usando uma estrutura mongoc_write_concern_t:
// Creates a write concern structuremongoc_write_concern_t *write_concern = mongoc_write_concern_new();
// Sets w=2mongoc_write_concern_set_wtimeout(write_concern, 5000);
// Apply write concern to clientmongoc_client_set_write_concern(client, write_concern);Journal
O componente j do preocupação de gravação, que solicita a confirmação de que as instâncias do MongoDB foram escritas no diário no disco. O valor padrão depende do valor na configuração writeConcernMajorityJournalDefault. Para saber mais sobre a opção j, consulte Write Concern no manual do MongoDB Server.
Você pode definir journal usando a opção MONGOC_URI_JOURNAL:
mongoc_uri_set_option_as_bool(uri, MONGOC_URI_JOURNAL, true);Você também pode definir journal usando uma estrutura mongoc_write_concern_t:
// Creates a write concern structuremongoc_write_concern_t *write_concern = mongoc_write_concern_new();
// Sets journal to truemongoc_write_concern_set_journal(write_concern, true);
// Apply write concern to clientmongoc_client_set_write_concern(client, write_concern);Opções de read concern
Nível de read concern
O nível de preocupação de leitura do cliente. Para obter mais informações, consulte a referência preocupação de leitura no manual do MongoDB Server.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?readConcernLevel=local");Nível de read concern
O nível de preocupação de leitura do cliente. Para obter mais informações, consulte a referência preocupação de leitura no manual do MongoDB Server.
Você pode definir o nível de preocupação de leitura usando a opção MONGOC_URI_READCONCERNLEVEL:
mongoc_uri_set_option_as_utf8(uri, MONGOC_URI_READCONCERNLEVEL, "local")Você também pode definir o nível de preocupação de leitura usando uma estrutura 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); Opções de read preference
readPreference
As configurações de preferência de leitura padrão do cliente. O valor padrão é primary. Consulte preferência de leitura no manual do MongoDB Server para obter mais informações.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?readPreference=primaryPreferred");maxstaleness
Máximo de segundos de atraso representa o maior atraso de replicação, em tempo real, que um secundário pode enfrentar e ainda ser qualificado para seleção de servidor . O menor valor permitido para maxStalenessSeconds é 90 segundos. Esta opção deve ser usada com uma preferência de leitura não primária.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?readPreference=secondary&maxStalenessSeconds=120");LocalThreshold
A janela de latência para elegibilidade do servidor . Se a viagem de ida e volta de um servidor demorar mais do que o tempo de ida e volta do servidor mais rápido mais esse valor, o servidor não estará qualificado para seleção. O valor padrão é 15 milissegundos.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?localThresholdMS=150");readPreference
As configurações de preferência de leitura padrão do cliente. O valor padrão é primary. Consulte preferência de leitura no manual do MongoDB Server para obter mais informações.
Você pode definir a preferência de leitura usando uma estrutura 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);Você também pode definir a preferência de leitura usando a opção MONGOC_URI_READPREFERENCE:
mongoc_uri_set_option_as_utf8(uri, MONGOC_URI_READPREFERENCE, "primaryPreferred")maxstaleness
Máximo de segundos de atraso representa o maior atraso de replicação, em tempo real, que um secundário pode enfrentar e ainda ser qualificado para seleção de servidor . O menor valor permitido para maxStalenessSeconds é 90 segundos. Esta opção deve ser usada com uma preferência de leitura não primária.
Você pode definir a desatualização máxima usando a opção MONGOC_URI_MAXSTALENESSSECONDS:
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_MAXSTALENESSSECONDS, 120);Você também pode definir a desatualização máxima usando uma estrutura 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 secondsmongoc_read_prefs_set_max_staleness_seconds(read_prefs, 120);
mongoc_client_set_read_prefs(client, read_prefs);LocalThreshold
A janela de latência para elegibilidade do servidor . Se a viagem de ida e volta de um servidor demorar mais do que o tempo de ida e volta do servidor mais rápido mais esse valor, o servidor não estará qualificado para seleção. O valor padrão é 15 milissegundos.
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_LOCALTHRESHOLDMS, 150);Opções de autenticação
Mecanismo de autenticação
O mecanismo que o driver usa para autenticar no MongoDB Server. Se você não especificar um mecanismo de autenticação, o driver usará SCRAM-SHA-1 ou SCRAM-SHA-256, dependendo da versão do servidor . Para saber mais sobre os mecanismos de autenticação disponíveis, consulte o Mecanismos de autenticação ou o guia Mecanismos de autenticação empresarial.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?authSource=admin&authMechanism=GSSAPI");Mecanismo de autenticação
O mecanismo que o driver usa para autenticar no MongoDB Server. Se você não especificar um mecanismo de autenticação, o driver usará SCRAM-SHA-1 ou SCRAM-SHA-256, dependendo da versão do servidor . Para saber mais sobre os mecanismos de autenticação disponíveis, consulte o Mecanismos de autenticação ou o guia Mecanismos de autenticação empresarial.
mongoc_uri_set_auth_mechanism(uri, "GSSAPI");Seleção de servidor e opções de descoberta
Frequência de pulsação
O intervalo entre as verificações de monitoramento do servidor . Deve ser maior ou igual a 500 milissegundos. O valor padrão é 10000 ms (10 segundos) no modo agrupado (multithreaded) e 60000 ms (60 segundos) no modo não agrupado (single-threaded).
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?heartbeatFrequencyMS=5000");ServerSelectionTimeout
O período de tempo em que o driver tenta selecionar um servidor antes de atingir o tempo limite. O valor padrão é 30000 ms (30 segundos).
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?serverSelectionTimeoutMS=40000");Intervalo de verificação do soquete
Aplica-se apenas a clientes de thread único. Se um soquete não tiver sido usado dentro desse período, o driver verificará a conexão com um rápido "chamar" de "olá" antes de ser usado novamente. O padrão é 5000 ms (5 segundos).
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?socketCheckIntervalMS=10000");Frequência de pulsação
O intervalo entre as verificações de monitoramento do servidor . Deve ser maior ou igual a 500 milissegundos. O valor padrão é 10000 ms (10 segundos) no modo agrupado (multithreaded) e 60000 ms (60 segundos) no modo não agrupado (single-threaded).
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_HEARTBEATFREQUENCYMS, 5000);ServerSelectionTimeout
O período de tempo em que o driver tenta selecionar um servidor antes de atingir o tempo limite. O valor padrão é 30000 ms (30 segundos).
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_SERVERSELECTIONTIMEOUTMS, 40000);Intervalo de verificação do soquete
Aplica-se apenas a clientes de thread único. Se um soquete não tiver sido usado dentro desse período, o driver verificará a conexão com um rápido "chamar" de "olá" antes de ser usado novamente. O padrão é 5000 ms (5 segundos).
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_SOCKETCHECKINTERVALMS, 10000);Opções de repetição
RetryReads
Permite leituras que podem ser repetidas. O valor padrão é true.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?retryReads=false");RetryWrites
Habilita gravações que podem ser tentadas novamente. O valor padrão é true.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?retryWrites=false");Observação
Descarte de carga no Intelligent Gerenciamento de Carga de Trabalho (IWM)
Se erros com os rótulos SystemOverloadedError ou RetryableError estiverem causando falhas em seu aplicativo ou aparecendo em seus logs de aplicativo, o Load Shedding pode estar ativo em seu cluster e seu driver pode não ter sido atualizado para uma versão que o suporte. Recomendamos atualizar seu driver MongoDB C para a versão 2.3 ou posterior. Se você continuar a ver esses erros após a atualização, poderá resolvê-los por meio de alterações no lado do servidor, como revisar sua configuração de Load Shedding, ou por meio de alterações no lado do aplicativo, como implementar tratamento de erros personalizado ou limitação de solicitação do lado do cliente. Dependendo da sua situação, as alterações no lado do aplicativo podem ser preferíveis ou necessárias.
O Load Shedding é um recurso do IWM e ajuda a gerenciar a carga do servidor rejeitando operações em excesso durante a sobrecarga sustentada. Este recurso está disponível no MongoDB 9.0 e posterior.
Para obter mais informações sobre IWM ou como lidar com erros de sobrecarga, consulte a página Gerenciamento inteligente de carga de trabalho ou a página Erros de sobrecarga na documentação do Atlas.
Opções diversas
Nome do aplicativo
O nome do aplicativo que o driver passa para o servidor nos metadados do cliente como parte da confirmação de conexão. O servidor imprime esse valor no log do MongoDB assim que estabelece a conexão. O valor também é registrado nos registros de consulta lentos e coleções de perfil. O valor padrão está vazio.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?appName=yourAppName");loadBalanced
Especifica se o driver está se conectando a um balanceador de carga . Você pode definir esta propriedade como true somente se todas as seguintes condições forem atendidas:
Você especifica apenas um nome de host
Você não está conectando a um conjunto de réplicas
Você não está usando a propriedade
SrvMaxHostsVocê não está usando a propriedade
DirectConnection
O valor padrão é false.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?loadBalanced=true");srvMaxHosts
O maior número de resultados SRV a serem selecionados aleatoriamente ao preencher inicialmente a lista de sementes ou, durante a sondagem SRV, adicionar novos hosts à topologia. O valor padrão é 0.
Você pode usar esta propriedade somente se o esquema de cadeia de conexão estiver definido como ConnectionStringScheme.MongoDBPlusSrv. Você não pode usá-lo ao conectar-se a um conjunto de réplicas.
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?srvMaxHosts=5");Nome do aplicativo
O nome do aplicativo que o driver passa para o servidor nos metadados do cliente como parte da confirmação de conexão. O servidor imprime esse valor no log do MongoDB assim que estabelece a conexão. O valor também é registrado nos registros de consulta lentos e coleções de perfil. O valor padrão está vazio.
mongoc_uri_set_option_as_utf8(uri, MONGOC_URI_APPNAME, "yourAppName");loadBalanced
Especifica se o driver está se conectando a um balanceador de carga . Você pode definir esta propriedade como true somente se todas as seguintes condições forem atendidas:
Você especifica apenas um nome de host
Você não está conectando a um conjunto de réplicas
Você não está usando a propriedade
SrvMaxHostsVocê não está usando a propriedade
DirectConnection
O valor padrão é false.
mongoc_uri_set_option_as_bool(uri, MONGOC_URI_LOADBALANCED, true);srvMaxHosts
O maior número de resultados SRV a serem selecionados aleatoriamente ao preencher inicialmente a lista de sementes ou, durante a sondagem SRV, adicionar novos hosts à topologia. O valor padrão é 0.
Você pode usar esta propriedade somente se o esquema de cadeia de conexão estiver definido como ConnectionStringScheme.MongoDBPlusSrv. Você não pode usá-lo ao conectar-se a um conjunto de réplicas.
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_SRVMAXHOSTS, 5);Informações adicionais
Para obter mais informações sobre os tipos usados nesta página, consulte a seguinte documentação da API: