Visão geral
Esta página descreve as opções de conexão disponíveis no driver .NET/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.
Como utilizar o URI de conexão
Se você passar um URI de conexão para o construtor MongoClient
, poderá incluir opções de conexão na string como pares de <name>=<value>
. No exemplo a seguir , o URI de conexão contém a opção connectTimeoutMS
com um valor de 60000
e a opção tls
com um valor de true
:
const string uri = "mongodb+srv:/localhost:27017/?connectTimeoutMS=60000&tls=true";
Para saber mais sobre as opções que você pode especificar em um URI de conexão, consulte Opções de connection string no manual do MongoDB Server.
Usando MongoClientSettings
Você pode usar um objeto MongoClientSettings
para definir as configurações de conexão no código em vez de em um URI de conexão. Configurar a conexão dessa maneira facilita a alteração das configurações em tempo de execução, ajuda a detectar erros durante a compilação e oferece mais opções de configuração do que o URI de conexão.
Para definir opções de conexão em um objeto MongoClientSettings
, execute as seguintes etapas:
Crie uma instância da classe
MongoClientSettings
Definir propriedades na instância para configurar a conexão
Passe a instância para o construtor
MongoClient
O seguinte exemplo de código mostra como executar as etapas anteriores:
var settings = new MongoClientSettings() { Scheme = ConnectionStringScheme.MongoDBPlusSrv, Server = new MongoServerAddress("localhost", 27017), ConnectTimeout = TimeSpan.FromMilliseconds(60000), UseTls = true }; var client = new MongoClient(settings);
Você também pode criar um objeto MongoClientSettings
a partir de uma string de conexão chamando o método MongoClientSettings.FromConnectionString()
e passando a string de conexão, conforme mostrado no exemplo a seguir. Isso é útil se você já tiver uma string de conexão , mas quiser modificar algumas configurações programaticamente, ou se precisar especificar configurações que não estão disponíveis na string de conexão.
const string connectionUri = "mongodb+srv://localhost:27017/?connectTimeoutMS=60000&tls=true"; var settings = MongoClientSettings.FromConnectionString(connectionUri); settings.ServerApi = new ServerApi(ServerApiVersion.V1); var client = new MongoClient(settings);
Como alternativa, você pode criar um objeto MongoClientSettings
a partir de um objeto MongoUrl
chamando o método MongoClientSettings.FromUrl()
e passando o objeto MongoUrl
, conforme mostrado no exemplo a seguir. Isso é útil se você já tiver um objeto MongoUrl
, mas quiser especificar configurações que não estão disponíveis na classe MongoUrl
.
const string connectionUri = "mongodb+srv://localhost:27017/?connectTimeoutMS=60000&tls=true"; var url = new MongoUrl(connectionUri); var settings = MongoClientSettings.FromUrl(url); settings.ServerApi = new ServerApi(ServerApiVersion.V1); var client = new MongoClient(settings);
Usando MongoUrlBuilder
Você pode utilizar um objeto MongoUrlBuilder
para criar e configurar configurações de conexão em um objeto MongoUrl
. Um MongoUrl
é uma representação fortemente digitada de um URI de conexão e é útil ao ler um URI de conexão diretamente de outra fonte. O uso de um objeto MongoUrl
tem muitas das mesmas vantagens que o uso de um objeto MongoClientSettings
, embora as duas classes contenham propriedades e métodos diferentes.
Para utilizar um objeto MongoUrlBuilder
, crie uma instância da classe e defina as propriedades de configuração necessárias. Para criar um objeto MongoUrl
a partir de MongoUrlBuilder
, chame o método MongoUrlBuilder.ToMongoUrl()
. Você pode passar o objeto MongoUrl
para o construtor MongoClient
. O seguinte exemplo de código mostra este processo:
const string connectionUri = "mongodb+srv://localhost:27017/?connectTimeoutMS=60000&tls=true"; var builder = new MongoUrlBuilder(connectionUri) { ServerMonitoringMode = MongoDB.Driver.Core.Servers.ServerMonitoringMode.Stream }; var url = builder.ToMongoUrl(); var client = new MongoClient(url);
Opções de conexão
As seções a seguir descrevem as opções de conexão disponíveis no driver .NET/C# e como especificá-las usando um objeto MongoClientSettings
ou MongoUrlBuilder
.
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 host. Se você especificar esta opção, o driver não aceitará o formato de conexão da lista de sementes DNS. Em vez disso, você deve usar o formato URI de conexão padrão. O valor padrão é false
.
Esta propriedade deve ser configurada para false
se você especificar mais de um nome de host.
var settings = new MongoClientSettings { DirectConnection = true, };
ReplicaSetName
O nome do conjunto de réplicas a que se conectar. O valor padrão é null
.
var settings = new MongoClientSettings { ReplicaSetName = "yourReplicaSet", };
Conexão direta
Especifica se todas as operações devem ser forçadas a serem despachadas para o host. Se você especificar esta opção, o driver não aceitará o formato de conexão da lista de sementes DNS. Em vez disso, você deve usar o formato URI de conexão padrão. O valor padrão é false
.
Esta propriedade deve ser configurada para false
se você especificar mais de um nome de host.
var builder = new MongoUrlBuilder { DirectConnection = true, };
ReplicaSetName
O nome do conjunto de réplicas a que se conectar. O valor padrão é null
.
var builder = new MongoUrlBuilder { ReplicaSetName = "yourReplicaSet", };
Opções de TLS
AllowInsecureTIs
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
.
Se esta propriedade estiver definida como true
e SslSettings.CheckCertificateRevocation
estiver definido como false
, o driver .NET/C# lançará uma exceção.
O seguinte exemplo de código mostra como definir esta opção para true
:
var settings = new MongoClientSettings { AllowInsecureTls = true, };
Configuraçõ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 .NET/C# lançará uma exceção.
var settings = new MongoClientSettings(); settings.SslSettings = new SslSettings() { CheckCertificateRevocation = false, ClientCertificateSelectionCallback = new LocalCertificateSelectionCallback() { ... }, ClientCertificates = new List<X509Certificate>() { ... }, EnabledSslProtocols = SslProtocols.Tls13, ServerCertificateValidationCallback = new RemoteCertificateValidationCallback() { ... } };
Use 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
.
var settings = new MongoClientSettings { UseTls = true, };
AllowInsecureTIs
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
.
Se esta propriedade estiver definida como true
e SslSettings.CheckCertificateRevocation
estiver definido como false
, o driver .NET/C# lançará uma exceção.
O seguinte exemplo de código mostra como definir esta opção para true
:
var builder = new MongoUrlBuilder { AllowInsecureTls = true, };
TlsDisableCertificateRe aggregateCheck
Se a verificação de revogação de certificado deve ser desabilitada durante a negociação TLS. O valor padrão é false
.
var builder = new MongoUrlBuilder { TlsDisableCertificateRevocationCheck = true };
Use 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
.
var builder = new MongoUrlBuilder { UseTls = true, };
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 é 30 segundos.
var settings = new MongoClientSettings { ConnectTimeout = TimeSpan.FromSeconds(60), };
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.
var settings = new MongoClientSettings { ConnectTimeout = TimeSpan.FromSeconds(60), };
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 é 30 segundos.
var builder = new MongoUrlBuilder { ConnectTimeout = TimeSpan.FromSeconds(60), };
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.
var builder = new MongoUrlBuilder { SocketTimeout = TimeSpan.FromSeconds(60), };
Opções de compressão
Compressores
Os tipos de compactação preferidos, em ordem, para mensagens de protocolo de transmissão enviadas ou recebidas do servidor. O driver usa o primeiro desses tipos de compactação que o servidor suporta. O valor padrão é null
.
var settings = new MongoClientSettings { Compressors = new List<CompressorConfiguration>() { new(CompressorType.Zlib), new(CompressorType.Snappy) } };
Compressores
Os tipos de compactação preferidos, em ordem, para mensagens de protocolo de transmissão enviadas ou recebidas do servidor. O driver usa o primeiro desses tipos de compactação que o servidor suporta. O valor padrão é null
.
var builder = new MongoUrlBuilder { Compressors = new List<CompressorConfiguration>() { new(CompressorType.Zlib), new(CompressorType.Snappy) } };
Opções do pool de conexões
maxConnecting
O maior número de conexões que o pool de conexões de um driver pode estar estabelecendo simultaneamente. O valor padrão é 2
.
var settings = new MongoClientSettings { MaxConnecting = 3, };
MaxConnectionIdleTime
O período de tempo que uma conexão pode ficar inativa antes que o driver a feche. O valor padrão é 10 minutos.
var settings = new MongoClientSettings { MaxConnectionIdleTime = TimeSpan.FromMinutes(8), };
MaxConnectionLifeTime
O período de tempo em que uma conexão pode ser agrupada antes de expirar. O valor padrão é 30 minutos.
var settings = new MongoClientSettings { MaxConnectionLifeTime = TimeSpan.FromMinutes(40), };
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
.
var settings = new MongoClientSettings { MaxConnectionPoolSize = 150, };
MinConnectionPoolSize
O número de conexões que o driver cria e mantém no pool de conexões mesmo quando nenhuma operação está ocorrendo. Esta contagem inclui conexões em uso. O valor padrão é 0
.
var settings = new MongoClientSettings { MinConnectionPoolSize = 3, };
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. O valor padrão é dois minutos.
var settings = new MongoClientSettings { WaitQueueTimeout = TimeSpan.FromSeconds(30), };
maxConnecting
O maior número de conexões que o pool de conexões de um driver pode estar estabelecendo simultaneamente. O valor padrão é 2
.
var builder = new MongoUrlBuilder { MaxConnecting = 3, };
MaxConnectionIdleTime
O período de tempo que uma conexão pode ficar inativa antes que o driver a feche. O valor padrão é 10 minutos.
var builder = new MongoUrlBuilder { MaxConnectionIdleTime = TimeSpan.FromMinutes(8), };
MaxConnectionLifeTime
O período de tempo em que uma conexão pode ser agrupada antes de expirar. O valor padrão é 30 minutos.
var builder = new MongoUrlBuilder { MaxConnectionLifeTime = TimeSpan.FromMinutes(40), };
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
.
var builder = new MongoUrlBuilder { MaxConnectionPoolSize = 150, };
MinConnectionPoolSize
O número de conexões que o driver cria e mantém no pool de conexões mesmo quando nenhuma operação está ocorrendo. Esta contagem inclui conexões em uso. O valor padrão é 0
.
var builder = new MongoUrlBuilder { MinConnectionPoolSize = 3, };
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. O valor padrão é dois minutos.
var builder = new MongoUrlBuilder { WaitQueueTimeout = TimeSpan.FromSeconds(30), };
Opções de write concern
Escreva preocupação
As configurações padrão de write concern, incluindo tempo limite de escrita e registro no diário para o cliente. O valor padrão é WriteConcern.Acknowledged
. Consulte Write Concern no manual do MongoDB Server para obter mais informações.
var settings = new MongoClientSettings(); settings.WriteConcern = MongoDB.Driver.WriteConcern.Acknowledged; settings.WriteConcern = new WriteConcern( w: 1, wTimeout: new TimeSpan(0, 0, 0, 30, 0), fsync: true, journal: true );
fsync
O componente FSync do preocupação de gravação. O valor padrão é false
. Para saber mais sobre o comando fsync
, consulte fsync no manual do MongoDB Server.
var builder = new MongoUrlBuilder { FSync = true };
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.
var builder = new MongoUrlBuilder { 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.
var builder = new MongoUrlBuilder { W = 2 };
tempo esgotado
O componente wtimeout
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.
var builder = new MongoUrlBuilder { WTimeout = TimeSpan.FromSeconds(5) };
Opções de read concern
Leia a preocupação
A preocupação de leitura do cliente. O valor padrão é ReadConcern.Default
. Para obter mais informações, consulte Read Concern no manual do MongoDB Server.
var settings = new MongoClientSettings { ReadConcern = MongoDB.Driver.ReadConcern.Local, };
readConcernLevel
O nível de preocupação de leitura do cliente. O valor padrão é ReadConcern.Local
. Para obter mais informações, consulte preocupação de leitura.
var builder = new MongoUrlBuilder { ReadConcernLevel = MongoDB.Driver.ReadConcernLevel.Local, };
Opções de read preference
readPreference
As configurações de preferência de leitura padrão do cliente. MaxStaleness
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 valor padrão é ReadPreference.Primary
. Especificar -1
significa que não há máximo. Consulte Preferências de leitura no manual do MongoDB Server para obter mais informações.
var settings = new MongoClientSettings { ReadPreference = MongoDB.Driver.ReadPreference.PrimaryPreferred, };
As configurações de preferência de leitura padrão do cliente. MaxStaleness
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 valor padrão é ReadPreference.Primary
. Especificar -1
significa que não há máximo. Consulte Preferências de leitura no manual do MongoDB Server para obter mais informações.
var builder = new MongoUrlBuilder { ReadPreference = MongoDB.Driver.ReadPreference.PrimaryPreferred, };
Opções de autenticação
Credenciais
Configurações de como o driver se autentica no servidor. Isso inclui credenciais de autenticação, mecanismo, fonte e outras configurações. O valor padrão é null
.
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 . Consulte Mecanismos de Autenticação para ver os mecanismos de autenticação disponíveis.
var settings = new MongoClientSettings { Credential = MongoCredential.CreatePlainCredential( databaseName: "admin", username: "user", password: "password" ) };
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 . Consulte mecanismos de autenticação para ver os mecanismos de autenticação disponíveis.
var builder = new MongoUrlBuilder { AuthenticationMechanism = "GSSAPI", AuthenticationMechanismProperties = new Dictionary<string, string> { { "SERVICE_NAME", "other" }, { "CANONICALIZE_HOST_NAME", "true" } }, AuthenticationSource = "db" };
Propriedades do mecanismo de autenticação
Definições de configuração para o mecanismo de autenticação especificado na propriedade AuthenticationMechanism
.
var builder = new MongoUrlBuilder { AuthenticationMechanism = "GSSAPI", AuthenticationMechanismProperties = new Dictionary<string, string> { { "SERVICE_NAME", "other" }, { "CANONICALIZE_HOST_NAME", "true" } }, AuthenticationSource = "db" };
Fonte de autenticação
A origem contra a qual autenticar o cliente .
var builder = new MongoUrlBuilder { AuthenticationMechanism = "GSSAPI", AuthenticationMechanismProperties = new Dictionary<string, string> { { "SERVICE_NAME", "other" }, { "CANONICALIZE_HOST_NAME", "true" } }, AuthenticationSource = "db" };
Senha
A senha a ser usada para autenticação.
var builder = new MongoUrlBuilder { Username = "user", Password = "password" };
Nome de usuário
O nome de usuário a ser usado para autenticação.
var builder = new MongoUrlBuilder { Username = "user", Password = "password" };
Seleção de servidor e opções de descoberta
HeartbeatInterval
O intervalo entre verificações regulares de monitoramento do servidor. Deve ser maior ou igual a 500 milissegundos. O valor padrão é 10000
milésimos de segundo (10 segundos).
var settings = new MongoClientSettings { HeartbeatInterval = TimeSpan.FromSeconds(5) };
HeartbeatTimeout
O período de tempo em que um soquete de monitoramento pode ficar inativo antes de atingir o tempo limite. O valor padrão é o valor da propriedade ConnectTimeout
.
var settings = new MongoClientSettings { HeartbeatTimeout = TimeSpan.FromSeconds(5) };
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.
var settings = new MongoClientSettings { LocalThreshold = TimeSpan.FromSeconds(15) };
ServerSelectionTimeout
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.
var settings = new MongoClientSettings { ServerSelectionTimeout = TimeSpan.FromSeconds(30) };
HeartbeatInterval
O intervalo entre verificações regulares de monitoramento do servidor. Deve ser maior ou igual a 500 milissegundos. O valor padrão é 10000
milésimos de segundo (10 segundos).
var builder = new MongoUrlBuilder { HeartbeatInterval = TimeSpan.FromSeconds(5) };
HeartbeatTimeout
O período de tempo em que um soquete de monitoramento pode ficar inativo antes de atingir o tempo limite. O valor padrão é o valor da propriedade ConnectTimeout
.
var builder = new MongoUrlBuilder { HeartbeatTimeout = TimeSpan.FromSeconds(5) };
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.
var builder = new MongoUrlBuilder { LocalThreshold = TimeSpan.FromSeconds(15) };
ServerSelectionTimeout
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.
var builder = new MongoUrlBuilder { ServerSelectionTimeout = TimeSpan.FromSeconds(30) };
Opções de codificação
Leia a codificação
A codificação UTF-8 a ser usada para desserialização de string. O valor padrão é codificação estrita, em que o driver lança uma exceção quando encontra uma sequência de bytes UTF-8 inválida
var settings = new MongoClientSettings { ReadEncoding = new UTF8Encoding( encoderShouldEmitUTF8Identifier: false, throwOnInvalidBytes: true) };
WriteEncoding
A codificação UTF-8 a ser usada para serialização de string. O valor padrão é codificação estrita, em que o driver lança uma exceção quando encontra uma sequência de bytes UTF-8 inválida
var settings = new MongoClientSettings { WriteEncoding = new UTF8Encoding( encoderShouldEmitUTF8Identifier: false, throwOnInvalidBytes: true) };
Observação
Somente configurações do MongoClient
As propriedades ReadEncoding
e WriteEncoding
estão disponíveis somente na classe MongoClientSettings
.
Stable API
API do servidor
Permite optar pelo controle de versão da API estável. O valor padrão é null
. Consulte API estável no manual do MongoDB Server para obter mais informações sobre o controle de versão da API estável.
var settings = new MongoClientSettings { ServerApi = new ServerApi( ServerApiVersion.V1, strict: true, deprecationErrors: true), };
Observação
Somente configurações do MongoClient
A propriedade ServerApi
está disponível somente na classe MongoClientSettings
.
Opções de repetição
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 nos registros do MongoDB quando a conexão é estabelecida. O valor também é registrado nos registros de consulta lentos e coleções de perfil. O valor padrão é null
.
var settings = new MongoClientSettings { ApplicationName = "yourAppName", };
AutoEncryptionOptions
Configurações para criptografia automática do lado do cliente . O valor padrão é null
. Para saber mais sobre criptografia do lado do cliente, consulte criptografia em execução.
var settings = new MongoClientSettings { AutoEncryptionOptions = new AutoEncryptionOptions( keyVaultNamespace: new CollectionNamespace( databaseName: "keyvault", collectionName: "datakeys"), kmsProviders: new Dictionary<string, IReadOnlyDictionary<string, object>> () { { "local", new Dictionary<string, object> () { { "key", "<base64-encoded-key>" } } } } ), };
ClusterConfigurator
Opções de configuração de baixo nível para soquetes, TLS, cluster e outros. O valor padrão é null
.
var settings = new MongoClientSettings { ClusterConfigurator = builder => { builder .Subscribe<ClusterOpenedEvent>(e => { Console.WriteLine($"Cluster opened: Cluster ID = {e.ClusterId}"); }) .Subscribe<ClusterDescriptionChangedEvent>(e => { Console.WriteLine($"Cluster description changed: {e.NewDescription}"); }); } };
IPv6
Especifica se o endereço de host está no formato IPv6. O valor padrão é false
.
var settings = new MongoClientSettings { IPv6 = true, };
IsFrozen
Uma opção somente leitura que indica se as configurações foram congeladas. Você não pode alterar configurações congeladas. O valor padrão é false
.
var settings = new MongoClientSettings(); if (!settings.IsFrozen) { settings.RetryReads = false; }
Dica
Congelar configurações
Você pode congelar as configurações em um objeto MongoClientSettings
chamando seu método Freeze(). Isso evita mais alterações nas configurações.
Como alternativa, você pode chamar o método FrozenCopy() para criar um novo objeto MongoClientSettings
com as configurações atuais congeladas.
LibraryInfo
O nome e a versão de uma biblioteca personalizada criada no driver .NET/C#. O condutor envia estas informações para o servidor.
var settings = new MongoClientSettings { LibraryInfo = new LibraryInfo("customLibraryName", "1.0.0") };
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
SrvMaxHosts
Você não está usando a propriedade
DirectConnection
O valor padrão é false
.
var settings = new MongoClientSettings { LoadBalanced = true, };
LoggingSettings
As configurações usadas para registro.O valor padrão é null
.
var settings = new MongoClientSettings { LoggingSettings = new LoggingSettings( LoggerFactory.Create(l => l.SetMinimumLevel(LogLevel.Debug))) };
Esquema
Especifica se o formato de string de conexão padrão (MongoDB
) ou o formato de lista de sementes DNS (MongoDBPlusSrv
) deve ser usado. Os valores disponíveis para esta propriedade são definidos na enumeração ConnectionStringScheme. O valor padrão é ConnectionStringScheme.MongoDB
. Consulte Connection strings no manual do MongoDB Server para obter mais informações sobre formatos de string de conexão.
Se a propriedade DirectConnection
estiver definida como true
e você tentar usar o formato de lista de sementes DNS, o driver .NET/C# lançará uma exceção.
var settings = new MongoClientSettings { Scheme = ConnectionStringScheme.MongoDBPlusSrv, };
Servidor
O host e o número da porta onde o MongoDB está sendo executado. O valor padrão é localhost:27017
.
var settings = new MongoClientSettings { Server = new MongoServerAddress("localhost", 27017) };
ServerMonitoringMode
Especifica o protocolo de monitoramento do servidor a ser usado. Os valores disponíveis para esta propriedade são definidos na enumeração ServerMonitoringMode. O valor padrão é Auto
.
Quando essa opção é definida como Auto
, o modo de monitoramento é determinado pelo ambiente em que o driver está sendo executado. O driver usa o modo de sondagem em ambientes de função como serviço (FaaS), como o Amazon Web Services Lambda, e o modo de streaming em outros ambientes.
var settings = new MongoClientSettings { ServerMonitoringMode = MongoDB.Driver.Core.Servers.ServerMonitoringMode.Stream };
Servidores
Os membros do cluster onde MongoDB está em execução. O valor padrão é localhost:27017
.
var settings = new MongoClientSettings { Servers = new List<MongoServerAddress>() { new ("localhost", 27017), new ("localhost", 27018) } };
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.
var settings = new MongoClientSettings { SrvMaxHosts = 5 };
SrvServiceName
O nome do serviço dos registros de recursos SRV que o driver recupera para construir sua lista de sementes. O driver utiliza o nome do serviço para criar o URI SRV, que corresponde ao seguinte formato:
_{srvServiceName}._tcp.{hostname}.{domainname}
Essa propriedade substitui o nome do serviço padrão para pesquisa de SRV na descoberta e na pesquisa. O valor padrão é "mongodb"
.
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.
var settings = new MongoClientSettings { SrvServiceName = "yourServiceName" };
TranslationOptions
Especifica opções, como a versão do MongoDB Server , para traduzir queries do LINQ para a API de query. O valor padrão é null
.
var settings = new MongoClientSettings { TranslationOptions = new ExpressionTranslationOptions() { CompatibilityLevel = ServerVersion.Server80, EnableClientSideProjections = true } };
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 nos registros do MongoDB quando a conexão é estabelecida. O valor também é registrado nos registros de consulta lentos e coleções de perfil. O valor padrão é null
.
var builder = new MongoUrlBuilder { ApplicationName = "yourAppName", };
DatabaseName
O nome do banco de dados ao qual o cliente se conecta.
var builder = new MongoUrlBuilder { DatabaseName = "test_database" };
IPv6
Especifica se o endereço de host está no formato IPv6. O valor padrão é false
.
var builder = new MongoUrlBuilder { IPv6 = true, };
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
SrvMaxHosts
Você não está usando a propriedade
DirectConnection
O valor padrão é false
.
var builder = new MongoUrlBuilder { LoadBalanced = true, };
Esquema
Especifica se o formato de string de conexão padrão (MongoDB
) ou o formato de lista de sementes DNS (MongoDBPlusSrv
) deve ser usado. Os valores disponíveis para esta propriedade são definidos na enumeração ConnectionStringScheme. O valor padrão é ConnectionStringScheme.MongoDB
. Consulte Connection strings no manual do MongoDB Server para obter mais informações sobre formatos de string de conexão.
Se a propriedade DirectConnection
estiver definida como true
e você tentar usar o formato de lista de sementes DNS, o driver .NET/C# lançará uma exceção.
var builder = new MongoUrlBuilder { Scheme = ConnectionStringScheme.MongoDBPlusSrv, };
Servidor
O host e o número da porta onde o MongoDB está sendo executado. O valor padrão é localhost:27017
.
var builder = new MongoUrlBuilder { Server = new MongoServerAddress("localhost", 27017) };
ServerMonitoringMode
Especifica o protocolo de monitoramento do servidor a ser usado. Os valores disponíveis para esta propriedade são definidos na enumeração ServerMonitoringMode. O valor padrão é Auto
.
Quando essa opção é definida como Auto
, o modo de monitoramento é determinado pelo ambiente em que o driver está sendo executado. O driver usa o modo de sondagem em ambientes de função como serviço (FaaS), como o Amazon Web Services Lambda, e o modo de streaming em outros ambientes.
var builder = new MongoUrlBuilder { ServerMonitoringMode = MongoDB.Driver.Core.Servers.ServerMonitoringMode.Stream };
Servidores
Os membros do cluster onde MongoDB está em execução. O valor padrão é localhost:27017
.
var builder = new MongoUrlBuilder { Servers = new List<MongoServerAddress>() { new ("localhost", 27017), new ("localhost", 27018) } };
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.
var builder = new MongoUrlBuilder { SrvMaxHosts = 5 };
SrvServiceName
O nome do serviço dos registros de recursos SRV que o driver recupera para construir sua lista de sementes. O driver utiliza o nome do serviço para criar o URI SRV, que corresponde ao seguinte formato:
_{srvServiceName}._tcp.{hostname}.{domainname}
Essa propriedade substitui o nome do serviço padrão para pesquisa de SRV na descoberta e na pesquisa. O valor padrão é "mongodb"
.
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.
var builder = new MongoUrlBuilder { SrvServiceName = "yourServiceName" };
Informações adicionais
Para obter mais informações sobre os tipos usados nesta página, consulte a seguinte documentação da API: