Visão geral
Esta seção descreve as opções de conexão e autenticação do MongoDB disponíveis no driver Rust. Você pode configurar sua conexão usando o URI de conexão (também chamado de string de conexão) ou definindo campos em uma instância ClientOptions ao criar um Client.
Como utilizar o URI de conexão
Se você passar um URI de conexão para o método Client::with_uri_str, poderá incluir opções de conexão na string como pares <name>=<value>. O exemplo a seguir mostra um URI de conexão contendo a opção connectTimeoutMS com um valor de 60000 e a opção tls com um valor de true:
use mongodb::Client; let uri = "mongodb://<hostname>:<port>/?connectTimeoutMS=60000&tls=true"; let client = Client::with_uri_str(uri).await?;
Uso do ClientOptions
Você pode definir opções de conexão em uma instância ClientOptions em vez de incluí-las no URI de conexão. Ao configurar sua conexão usando uma instância do ClientOptions, é mais fácil alterar as configurações no tempo de execução e detectar erros durante a compilação. O exemplo seguinte mostra como utilizar o ClientOptions para configurar opções de conexão:
use std::time::Duration; use mongodb::{Client, options::ClientOptions}; let uri = "mongodb://<hostname>:<port>/"; let mut client_options = ClientOptions::parse(uri).await?; client_options.connect_timeout = Some(Duration::from_secs(60000)); //Set additional options on client_options here let client = Client::with_options(client_options)?;
Opções de conexão
As seções a seguir descrevem as opções de conexão disponíveis no driver Rust. Para ver uma lista completa de opções de conexão, visite a seção Opções de string de conexão do guia manual do servidor sobre strings de conexão.
Compactação de rede
Nome da opção | Valores aceitos | Valor padrão | Descrição |
|---|---|---|---|
compressors | Uma lista de strings separadas por vírgula | none | Especifica os compressores que a instância |
zlibCompressionLevel | Inteiro entre |
| Especifica o campo de nível da compactação |
Tempo-limite
Nome da opção | Valores aceitos | Valor padrão | Descrição |
|---|---|---|---|
connectTimeoutMS | Non-negative integer |
| Especifica o tempo limite de conexão, em milissegundos, passado para cada fluxo TCP subjacente ao tentar se conectar ao servidor. |
Seleção do Servidor
Nome da opção | Valores aceitos | Valor padrão | Descrição |
|---|---|---|---|
heartbeatFrequencyMS | inteiro maior ou igual a 500 |
| Especifica a quantidade de tempo, em milésimos de segundo, que cada thread de monitoramento aguarda entre as verificações do servidor. |
maxStalenessSeconds |
|
| Especifica o atraso máximo, em segundos, atrás do nó primário que um nó secundário pode ser considerado para a operação fornecida. |
serverSelectionTimeoutMS | Non-negative integer |
| Especifica a quantidade de tempo, em milésimos de segundo, que a instância |
Autenticação
Nome da opção | Valores aceitos | Valor padrão | Descrição |
|---|---|---|---|
authMechanism | String | none | Especifica qual mecanismo de autenticação usar. Se você não especificar esta opção, o driver usará o mecanismo de autenticação padrão. Para saber mais sobre autenticação no driver Rust, consulte o guia sobre mecanismos de autenticação. |
authMechanismProperties | String | none | Especifica mais propriedades para o mecanismo de autenticação definido na opção |
authSource | String | Veja a descrição | Especifica o banco de dados usado para autenticar. |
tls | Boolean |
| Especifica a configuração TLS para a instância do |
tlsAllowInvalidCertificates | Boolean |
| Especifica se a instância |
tlsCAFile | String | Veja a descrição | Especifica o caminho para o arquivo da autoridade de certificação (CA) que a instância |
tlsCertificateKeyFile | String | none | Especifica o caminho para o arquivo de certificado que a instância do |
tlsCertificateKeyFilePassword | String | none | Especifica a senha para descriptografar a chave privada em seu arquivo de certificado, se a chave estiver criptografada. |
tlsInsecure | Boolean |
| Especifica se a instância |
Operações de leitura e escrita
Nome da opção | Valores aceitos | Valor padrão | Descrição |
|---|---|---|---|
directConnection | Boolean |
| Especifica se a instância do |
enableOverloadRetargeting | Boolean |
| Especifica se o driver desprioriza um servidor que retorna um erro de sobrecarga, reduzindo a probabilidade de tentar novamente no mesmo servidor sobrecarregado. |
journal | Boolean |
| Solicita confirmação de que a operação foi propagada para o diário em disco. |
localThresholdMS | Non-negative integer |
| Especifica a quantidade de tempo em milissegundos que o tempo médio de ida e volta entre o driver e o servidor pode durar em comparação com o tempo de ida e volta mais curto de todos os servidores adequados. |
maxAdaptiveRetries | Non-negative integer |
| Especifica o número máximo de tentativas a serem tentadas quando o driver encontra erros de sobrecarga. |
readConcernLevel | String | none | Especifica o read concern padrão para operações realizadas na instância do |
readPreference | String |
| Especifica como o driver roteia uma operação de leitura para nós de um conjunto de réplicas. |
readPreferenceTags | Uma lista de pares de valores-chave separados por vírgula | none | Especifica quais nós do conjunto de réplicas são considerados para operações. Cada instância desta chave é um conjunto de tags separado. |
replicaSet | String | none | Especifica o nome do conjunto de réplicas ao qual a instância |
retryReads | Boolean |
| Especifica se o cliente tenta novamente uma operação de leitura se a operação falhar. |
w | inteiro ou string não negativo | none | Solicita confirmação de que a operação se propagou para um número ou variedade específica de servidores. |
wTimeoutMS | Non-negative integer | Sem tempo limite | Especifica um limite de tempo, em milésimos de segundo, para a write concern. |
Pool de Conexões
Nome da opção | Valores aceitos | Valor padrão | Descrição |
|---|---|---|---|
maxIdleTimeMS | Non-negative integer |
| Especifica a quantidade de tempo em milissegundos que uma conexão pode permanecer ociosa em um pool de conexões antes que o servidor a feche. |
maxPoolSize | Non-negative integer |
| Especifica o número máximo de conexões que a instância |
minPoolSize | Non-negative integer |
| Especifica o número mínimo de conexões disponíveis em um pool de conexões de um servidor em um determinado momento. |
Para obter mais informações sobre pools de conexões, consulte o guia pools de conexões.
Em geral
Nome da opção | Valores aceitos | Valor padrão | Descrição |
|---|---|---|---|
appName | String | none | Especifica o nome do aplicativo que a instância |
Documentação da API
Para obter mais informações sobre ClientOptions para o driver Rust, consulte a documentação da API para ClientOptions.