Você pode especificar a cadeia de conexão do MongoDB usando um dos seguintes formatos:
Formato de conexão SRV: uma string de conexão com um nome de host que corresponde a um registro SRV do DNS. Seu driver ou
mongosh
consulta o registro para determinar quais hosts estão executando as instânciasmongod
oumongos
.Formato padrão de string de conexão: uma string de conexão que especifica todos os hosts que estão executando as instâncias do
mongod
oumongos
.
Os clusters do MongoDB Atlas usam o formato de conexão SRV, a menos que você se conecte a um arquivo online.
Para conectar-se diretamente a um host e porta especificados em uma string de conexão, configure a opção directConnection
para true
. Para obter detalhes completos sobre directConnection
e as outras opções de string de conexão, veja Opções de string de conexão.
Formato de conexão SRV
O MongoDB oferece suporte a uma lista de sementes construídaDNS . Usar o DNS para construir a lista de servidores disponíveis permite maior flexibilidade de implantação e a capacidade de alterar os servidores em rotação sem reconfigurar os clientes.
O esquema de conexão do URI do SRV tem o seguinte formulário:
mongodb+srv://[username:password@]host[/[defaultauthdb][?options]]
Para mais exemplos, consulte estas páginas:
Componentes da connection string
Uma connection string inclui os seguintes componentes:
Componente | Descrição | |
---|---|---|
| Um prefixo necessário para identificar que esta é uma string no formato de conexão padrão ( | |
| Opcional. Credenciais de autenticação. Se especificado, o cliente tentará autenticar o usuário no Se o nome de usuário ou senha incluir os seguintes caracteres, esses caracteres deverão ser convertidos usando codificação percentual:
Consulte também | |
| O host (e o número da porta opcional) em que a instância
Se o número da porta não for especificado, a porta padrão Se você usar o formato de conexão URI do SRV, poderá especificar somente um host e nenhuma porta. Caso contrário, o driver ou o | |
| Opcional. O banco de banco de dados de autenticação para utilizar se a string de conexão incluir credenciais de autenticação do Se tanto IMPORTANTE: para sistemas do Atlas usando o formato de conexão SRV, | |
| Opcional. Uma string de consulta que especifica opções específicas de conexão como Se a string de conexão não especificar um banco de dados/você deve especificar uma barra ( |
Para usar a lista de sementes de DNS, use a mesma sintaxe de uma string de conexão padrão com um prefixo mongodb+srv
em vez do padrão mongodb
. O +srv
indica ao cliente que o nome do host a seguir corresponde a um registro DNS SRV. O driver ou mongosh
consulta o DNS em busca do registro para determinar quais hosts estão executando as instâncias mongod
ou mongos
.
Observação
Ao usar o formato +srv
, você deve especificar hostname
, domain
e top-level domain (TLD)
no seguinte formato: <hostname>.<domain>.<TLD>.
Essa tabela mostra como os espaços reservados correspondem aos valores de exemplo:
Espaço reservado | Exemplo |
---|---|
|
|
|
|
|
|
|
|
Este exemplo mostra uma connection string da lista de sementes de DNS que usa corretamente o formato <hostname>.<domain>.<TLD>
. Ele autentica como usuário myDatabaseUser
com a senha D1fficultP%40ssw0rd
:
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@server.example.com/
A configuração de DNS correspondente é semelhante a:
Record TTL Class Priority Weight Port Target _mongodb._tcp.server.example.com. 86400 IN SRV 0 5 27317 mongodb1.example.com. _mongodb._tcp.server.example.com. 86400 IN SRV 0 5 27017 mongodb2.example.com.
Os registros SRV individuais devem estar no formato _mongodb._tcp.<hostname>.<domain>.<TLD>
.
Quando um cliente se conecta a um membro da lista de sementes, o cliente recupera uma lista de membros do conjunto de réplicas aos quais ele pode se conectar. Os clientes geralmente usam aliases DNS em suas listas de sementes, o que significa que o host pode retornar uma lista de servidor diferente da lista de sementes original. Se isso acontecer, os clientes usarão os nomes de host fornecidos pelo conjunto de réplicas em vez dos nomes de host listados na lista de sementes para garantir que os membros do conjunto de réplicas possam ser acessados por meio dos nomes de host na configuração resultante do conjunto de réplicas.
Importante
Os nomes de host retornados nos registros SRV devem compartilhar o mesmo domínio pai (neste exemplo, example.com
) do nome de host fornecido. Se os domínios pai e o nome de host não corresponderem, você não poderá se conectar.
Assim como a string de conexão padrão, a string de conexão da lista de sementes de DNS oferece suporte à especificação de opções como uma string da query. Com uma connection string de lista de sementes de DNS, você também pode especificar as seguintes opções por meio de um registro TXT:
replicaSet
authSource
Você só pode especificar um registro TXT por instância do mongod
. Se vários registros TXT forem exibidos no DNS ou se o registro TXT contiver uma opção diferente de replicaSet
ou authSource
, o cliente retornará um erro.
O registro TXT para a entrada de DNS do server.example.com
é semelhante ao exemplo a seguir :
Record TTL Class Text server.example.com. 86400 IN TXT "replicaSet=mySet&authSource=authDB"
Juntos, os registros DNS SRV e as opções especificadas no registro TXT resultam na seguinte cadeia de conexão de formato padrão:
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb1.example.com:27317,mongodb2.example.com:27017/?replicaSet=mySet&authSource=authDB
Para substituir as opções especificadas em um registro TXT, especifique a opção na string de query. Por exemplo, a string de query a seguir substitui a opção authSource
configurada no registro TXT da entrada DNS anterior.
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@server.example.com/?connectTimeoutMS=300000&authSource=aDifferentAuthDB
Dada a substituição de authSource
, a string de conexão equivalente no formato padrão seria semelhante ao exemplo a seguir:
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb1.example.com:27317,mongodb2.example.com:27017/?connectTimeoutMS=300000&replicaSet=mySet&authSource=aDifferentAuthDB
Observação
A opção mongodb+srv
falhará se não houver DNS disponível com registros que correspondam ao nome do host identificado na string de conexão. Se você usar o string de conexão +srv
, a opção tls
(ou ssl
equivalente) é definida como true
para a conexão. Você pode substituir este comportamento configurando explicitamente a opção tls
(ou ssl
equivalente) para false
com tls=false
(ou ssl=false
) na string de consulta.
Para ver um exemplo que conecta o mongosh
a um conjunto de réplicas usando o formato de conexão de lista de sementes DNS, consulte Opções de conexão do mongosh.
Formato de connection string padrão
Esta seção descreve o formato padrão do URI de conexão do MongoDB usado para conectar-se a uma implantação autônoma, conjunto de réplicas ou cluster fragmentado do MongoDB auto-hospedado.
O esquema de conexão URI padrão tem o formulário:
mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]
Opções de banco de dados de string de conexão
Você pode especificar um banco de dados padrão no campo [/defaultauthdb]
da string de conexão. O cliente utiliza o banco de dados [/defaultauthdb]
especificado como banco de dados padrão. Se não for especificado pela string de conexão, o MongoDB usará o banco de dados test
como padrão.
Você pode especificar o banco de dados de autenticação em sua string de conexão utilizando a opção de conexão do authSource
. Se especificado, o cliente utiliza este banco de dados para verificar sua identidade de usuário e credenciais. Se authSource
não for especificado, o padrão será o banco de dados [/defaultauthdb]
. Se tanto authSource
quanto [/defaultauthdb]
não forem especificados, authSource
padronizará para o banco de dados admin
.
O exemplo de string de conexão define o banco de dados padrão como myDefaultDB
e o banco de dados de autenticação como admin
:
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017/myDefaultDB?authSource=admin
Componentes da connection string
Uma connection string inclui os seguintes componentes:
Componente | Descrição | |
---|---|---|
| Um prefixo necessário para identificar que esta é uma string no formato de conexão padrão ( | |
| Opcional. Credenciais de autenticação. Se especificado, o cliente tentará autenticar o usuário no Se o nome de usuário ou senha incluir os seguintes caracteres, esses caracteres deverão ser convertidos usando a codificação percentual:
Consulte também | |
| O host (e o número da porta opcional) em que a instância
Se o número da porta não for especificado, a porta padrão Se você usar o formato de conexão URI do SRV, poderá especificar somente um host e nenhuma porta. Caso contrário, o driver ou o | |
| Opcional. O banco de banco de dados de autenticação para utilizar se a string de conexão incluir credenciais de autenticação do Se tanto IMPORTANTE: para sistemas do Atlas usando o formato de conexão SRV, | |
| Opcional. Uma string de consulta que especifica opções específicas de conexão como Se a string de conexão não especificar um banco de dados/você deve especificar uma barra ( |