Esta seção explica as opções de conexão e autenticação do MongoDB compatíveis com o driver Node.js que você pode definir em uma instância MongoClientOptions
.
Para obter mais informações sobre como definir as opções de conexão diretamente em uma string de conexão, consulte Connection strings no manual do MongoDB Server .
Nome | Valores aceitos | Valor padrão | Descrição |
---|---|---|---|
appName | string |
| Especifica o nome do aplicativo que o driver passa para o servidor nos metadados do cliente como parte da confirmação de conexão. O driver envia o valor de |
authMechanism | string |
| Especifica o método do mecanismo de autenticação a ser usado para conexão com o servidor. Se você não especificar um valor, o driver utilizará o mecanismo padrão, |
authMechanismProperties | chave separada por vírgula:pares de valores, por exemplo, "opt1:val1,opt2:val2" |
| Especifica outras opções fornecidas para autenticação, como a opção de ativar a canonização do nome do host para GSSAPI. |
authSource | string |
| Especifica o banco de dados com o qual as conexões se autenticam. |
autoSelectFamily | booleano |
| Se definido como |
autoSelectFamilyAttemptTimeout | non-negative integer |
| Especifica a quantidade de tempo, em milissegundos, para aguardar a conclusão de uma tentativa de conexão antes de tentar o próximo endereço ao usar a opção |
compressors | lista separada por vírgula de strings, por exemplo, "snappy,zlib,zstd" |
| Especifica os tipos de compactação permitidos para mensagens de protocolo de fio enviadas ou recebidas do servidor. Consulte Compressão de rede para mais informações. |
connectTimeoutMS | non-negative integer |
| Especifica a quantidade de tempo, em milissegundos, a ser aguardada para estabelecer uma única conexão de soquete TCP com o servidor antes de gerar um erro. Especificar |
directConnection | booleano |
| Especifica se todas as operações devem ser forçadas a serem despachadas para o host especificado no URI de conexão. |
enableUtf8Validation | booleano |
| A especificação do A especificação de Para saber mais sobre os caracteres UTF-8, consulte UTF-8 na Wikipedia. |
heartbeatFrequencyMS | inteiro maior ou igual a 500 |
| Especifica o intervalo, em milissegundos, entre verificações regulares de monitoramento do servidor. |
loadBalanced | booleano |
| Especifica se o driver está se conectando a um balancer de carga. |
localThresholdMS | non-negative integer |
| Especifica o tamanho da janela de latência, em milissegundos, no tempo de viagem de ida e volta para selecionar entre os servidores adequados. Especificar |
maxIdleTimeMS | non-negative integer |
| Especifica a quantidade de tempo, em milissegundos, que uma conexão pode ficar ociosa antes de ser fechada. Especificar |
maxPoolSize | non-negative integer |
| Especifica o número máximo de clientes ou conexões que o driver pode criar em seu repositório de conexões. Esta contagem inclui conexões em uso. |
maxConnecting | non-negative integer |
| Especifica o número máximo de conexões que um conjunto de conexões do driver pode estar estabelecendo simultaneamente. |
maxStalenessSeconds | -1, ou um número inteiro maior ou igual a 90 |
| Especifica o atraso máximo de replicação, em tempo de relógio de parede, que um secundário pode enfrentar e ainda ser qualificado para seleção de servidor. Especificar |
minPoolSize | non-negative integer |
| Especifica o número de conexões que o driver cria e mantém no repositório de conexões mesmo quando nenhuma operação está ocorrendo.Esta contagem inclui conexões em uso. |
proxyHost | string |
| Especifica o endereço IPv5 de proxy SOCKS4, endereço IPv6 ou nome de domínio. |
proxyPort | non-negative integer |
| Especifica o número da porta TCP do servidor proxy SOCKS5. Se você definir a opção |
proxyUsername | string |
| Especifica o nome de usuário para autenticação no servidor proxy SOCKS5. Se você definir essa opção como uma string de comprimento zero, o driver a ignorará. |
proxyPassword | string |
| Especifica a senha para autenticação no servidor proxy SOCKS5. Se você definir essa opção como uma string de comprimento zero, o driver a ignorará. |
readConcernLevel | string |
| Especifica a preocupação de leitura padrão para o cliente. Consulte a página Preocupação de leitura para obter mais informações. |
readPreference | string |
| Especifica a preferência de leitura padrão para o cliente (excluindo tags). Consulte preferência de leitura para obter mais informações. |
readPreferenceTags | chave separada por vírgula:pares de valores, por exemplo, "dc:ny,rack:1" e "dc:ny podem ser especificados várias vezes, cada instância desta chave é um conjunto de tags separado |
| Especifica as tags de preferência de leitura padrão para o cliente. Esta opção é válida somente se o modo de preferência de leitura não for primário. O condutor utiliza a ordem das etiquetas no URI como ordem para a preferência de leitura. |
replicaSet | string |
| Especifica o nome do conjunto de réplicas ao qual se conectar. |
retryReads | booleano |
| Permite leituras que podem ser repetidas. |
retryWrites | booleano |
| Habilita gravações que podem ser tentadas novamente. |
serverMonitoringMode |
|
| Especifica o modo de monitoramento usado pelos monitores do driver. Quando essa opção é definida como |
serverSelectionTimeoutMS | non-negative integer |
| Especifica o tempo limite, em milissegundos, para bloquear a seleção do servidor antes de gerar um erro. |
socketTimeoutMS | non-negative integer |
| Especifica a quantidade de tempo em milissegundos gasto tentando enviar ou receber em um soquete antes do tempo limite. Especificar |
srvMaxHosts | non-negative integer |
| Especifica o número máximo de resultados SRV a serem selecionados aleatoriamente ao preencher inicialmente a lista de sementes ou, durante a sondagem SRV, adicionar novos hosts à topologia. |
srvServiceName | um nome de serviço SRV válido de acordo com RFC 6335 |
| Especifica o nome do serviço a ser usado para a pesquisa de SRV na descoberta inicial da lista de sementes de DNS. |
ssl | booleano |
| O |
tls | booleano |
| Especifica se o TLS é necessário para conexões com o servidor. Usar |
tlsAllowInvalidCertificates | booleano |
| Especifica se o driver gera um erro quando o certificado TLS do servidor é inválido. Defina esta opção como |
tlsAllowInvalidHostnames | booleano |
| Especifica se o driver gera um erro quando há uma incompatibilidade entre o nome de host do servidor e o nome de host especificado pelo certificado TLS. Defina esta opção como |
tlsCAFile | string |
| Especifica o caminho para um arquivo com uma única autoridade de certificação ou um pacote de autoridades de certificação em que se deve confiar ao fazer uma conexão TLS. Para saber mais sobre como definir essa opção de conexão, consulte a seção Fornecer caminhos de arquivo de certificado do guia TLS. |
tlsCertificateKeyFile | string |
| Especifica o caminho para o arquivo de certificado do cliente ou o arquivo de chave privada do cliente. Se você precisar de ambos, deverá concatenar os arquivos. Para saber mais sobre como definir essa opção de conexão, consulte a seção Fornecer caminhos de arquivo de certificado do guia TLS. |
tlsCertificateKeyFilePassword | string |
| Especifica a senha para descriptografar a chave privada do cliente a ser usada para conexões TLS. |
tlsInsecure | booleano |
| Especifica para relaxar as restrições de TLS o máximo possível, como permitir certificados inválidos ou incompatibilidades de nome de host. Defina esta opção como |
waitQueueTimeoutMS | non-negative integer |
| Especifica o tempo, em milissegundos, gasto tentando verificar uma conexão do repositório de conexão de um servidor antes do tempo limite.
|
zlibCompressionLevel | inteiro entre |
| Especifica o nível de compressão ao usar zlib para comprimir mensagens de protocolo de fio. |
Opções de tempo limite de conexão
Contexto | Descrição |
---|---|
connectTimeoutMS |
Padrão: 30000 |
socketTimeoutMS |
|
maxTimeMS | maxTimeMS especifica o tempo máximo que o servidor aguarda a conclusão de uma operação depois que ela chega ao servidor. Se uma operação for executada acima do limite de tempo especificado, ela retornará um erro de tempo limite. Você pode passar o |
Para especificar as configurações opcionais para seu MongoClient
, declare uma ou mais configurações disponíveis no objeto options
do construtor como segue:
const client = new MongoClient(uri, { connectTimeoutMS: <integer value>, socketTimeoutMS: <integer value> });
Para ver todas as configurações disponíveis, consulte a documentação da API MongoClientOptions.
Para especificar maxTimeMS
, passe o método maxTimeMS
como uma opção com uma especificação de tempo limite para uma operação que retorna um Cursor
:
const Cursor = collection.distinct('my-key', { maxTimeMS: 50 });
Fechar soquetes após a conexão
Se você enfrentar um comportamento de rede inesperado ou se um processo do MongoDB falhar com um erro, talvez você não receba a confirmação de que o driver fechou corretamente o soquete correspondente.
Para garantir que o driver feche corretamente o soquete nesses casos, defina a opção socketTimeoutMS
. Quando um processo MongoDB expirar, o driver fechará o soquete. Recomendamos que você selecione um valor de socketTimeoutMS
que seja duas a três vezes maior que a duração esperada da operação mais lenta executada pelo seu aplicativo.
Evite que operações de longa duração tornem o servidor lento
Você pode evitar que operações de longa duração reduzam a velocidade do servidor especificando um valor de tempo limite. Você pode encadear o método maxTimeMS()
a uma operação que retorna Cursor
para definir um tempo limite para uma ação específica.
O exemplo a seguir mostra como você pode encadear o método maxTimeMS()
a uma operação que retorna Cursor
:
// Execute a find command await collection .find({ $where: "sleep(100) || true" }) .maxTimeMS(50);
Opção de conexão keepAlive
A opção de conexão keepAlive
especifica se deve ser ativado o protocolo de controle de transmissão (TCP) keepalives em um soquete TCP. Se você habilitar o keepalives, o driver verificará se a conexão está ativa enviando pings periódicos para seu sistema do MongoDB . Esta funcionalidade funciona somente se o seu sistema operacional suportar a opção de soquete SO_KEEPALIVE
.
A opção keepAliveInitialDelay
especifica o número de milésimos de segundo que o condutor espera antes de iniciar uma manutenção.
O lançamento da versão 5.3 do driver desativou essas opções. A partir da versão 6.0 do driver, a opção keepAlive
é definida permanentemente como true
e a keepAliveInitialDelay
é definida como 300.000 milissegundos (300 segundos).
Aviso
Se o firewall ignorar ou descartar as mensagens keepalive, talvez você não consiga identificar conexões perdidas.
Informações adicionais
Para saber mais sobre as opções de conexão que você pode definir em uma MongoClientOptions
instância do, consulte MongoClientOptions na documentação da API.