Menu Docs
Página inicial do Docs
/
Manual do banco de dados
/ /

Formatos de cadeia de conexão

Você pode especificar a cadeia de conexão do MongoDB usando um dos seguintes formatos:

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.

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:

Uma connection string inclui os seguintes componentes:

Componente
Descrição

mongodb:// ou mongodb+srv://

Um prefixo necessário para identificar que esta é uma string no formato de conexão padrão (mongodb://) ou no formato de conexão SRV (mongodb+srv://). Para saber mais sobre cada formato, consulte Formato de string de conexão padrão e conexão SRV.

username:password@

Opcional. Credenciais de autenticação.

Se especificado, o cliente tentará autenticar o usuário no authSource. Se o authSource não for especificado, o cliente tentará autenticar o usuário no defaultauthdb. E se o defaultauthdb não for especificado, para o banco de banco de dados do admin .

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 authSource.

host[:port]

O host (e o número da porta opcional) em que a instância mongod (ou mongos para um cluster fragmentado) está sendo executada. Você pode especificar um nome de host, endereço IP ou soquete de domínio UNIX. Especifique quantos hosts forem apropriados para sua topologia de implantação:

  • Para um standalone, especifique o nome do host da instância de mongod standalone.

  • Para um conjunto de réplica, especifique o(s) nome(s) de host da(s) instância(s) do mongod como listado na configuração do conjunto de réplicas.

  • Para um cluster fragmentado, especifique o(s) nome(s) de host da(s) instância(s) mongos.

Se o número da porta não for especificado, a porta padrão 27017 será usada.

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 mongosh levanta um erro de análise e não executa a resolução de DNS.

/defaultauthdb

Opcional. O banco de banco de dados de autenticação para utilizar se a string de conexão incluir credenciais de autenticação do username:password@ mas a opção authSource não for especificada.

Se tanto authSource quanto defaultauthdb não forem especificados, o cliente tentará autenticar o usuário especificado no banco de dados do admin. Para mais informações, consulte authSource.

IMPORTANTE: para sistemas do Atlas usando o formato de conexão SRV, authSource é definido automaticamente como admin no registro de DNS TXT. Para mais informações sobre conectar a sistemas Atlas, consulte Conectar a um Cluster Atlas.

?<options>

Opcional. Uma string de consulta que especifica opções específicas de conexão como <name>=<value> pares. Consulte Opções de connection string para obter uma descrição completa dessas opções.

Se a string de conexão não especificar um banco de dados/você deve especificar uma barra (/) entre os últimos host e o ponto de interrogação (?) que inicia a string de opções.

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

Quando você usa o string de conexão +srv, a conexão define automaticamente a opção tls (ou a opção equivalente ssl) como true. Para substituir este comportamento, defina explicitamente a opção tls (ou a opção equivalente ssl) para false na string de consulta de conexã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

<hostname>

server

<domain>

example

<TLD>

com

<hostname>.<domain>.<TLD>

server.example.com

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.

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]]

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

Uma connection string inclui os seguintes componentes:

Componente
Descrição

mongodb:// ou mongodb+srv://

Um prefixo necessário para identificar que esta é uma string no formato de conexão padrão (mongodb://) ou no formato de conexão SRV (mongodb+srv://). Para saber mais sobre cada formato, consulte Formato de string de conexão padrão e conexão SRV.

username:password@

Opcional. Credenciais de autenticação.

Se especificado, o cliente tentará autenticar o usuário no authSource. Se o authSource não for especificado, o cliente tentará autenticar o usuário no defaultauthdb. E se o defaultauthdb não for especificado, para o banco de banco de dados do admin .

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 authSource.

host[:port]

O host (e o número da porta opcional) em que a instância mongod (ou mongos para um cluster fragmentado) está sendo executada. Você pode especificar um nome de host, endereço IP ou soquete de domínio UNIX. Especifique quantos hosts forem apropriados para sua topologia de implantação:

  • Para um standalone, especifique o nome do host da instância de mongod standalone.

  • Para um conjunto de réplica, especifique o(s) nome(s) de host da(s) instância(s) do mongod como listado na configuração do conjunto de réplicas.

  • Para um cluster fragmentado, especifique o(s) nome(s) de host da(s) instância(s) mongos.

Se o número da porta não for especificado, a porta padrão 27017 será usada.

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 mongosh levanta um erro de análise e não executa a resolução de DNS.

/defaultauthdb

Opcional. O banco de banco de dados de autenticação para utilizar se a string de conexão incluir credenciais de autenticação do username:password@ mas a opção authSource não for especificada.

Se tanto authSource quanto defaultauthdb não forem especificados, o cliente tentará autenticar o usuário especificado no banco de dados do admin. Para mais informações, consulte authSource.

IMPORTANTE: para sistemas do Atlas usando o formato de conexão SRV, authSource é definido automaticamente como admin no registro de DNS TXT. Para mais informações sobre conectar a sistemas Atlas, consulte Conectar a um Cluster Atlas.

?<options>

Opcional. Uma string de consulta que especifica opções específicas de conexão como <name>=<value> pares. Consulte Opções de connection string para obter uma descrição completa dessas opções.

Se a string de conexão não especificar um banco de dados/você deve especificar uma barra (/) entre os últimos host e o ponto de interrogação (?) que inicia a string de opções.

Voltar

Opções

Nesta página