Guia de conexão
Nesta página
Este guia mostra como conectar a uma implantação do MongoDB Atlas, uma instância MongoDB ou um conjunto de réplica utilizando o driver Node.js.
URI de conexão
O URI de conexão é o conjunto de instruções que o driver utiliza para se conectar a um sistema MongoDB. Ele instrui o driver sobre como deve se conectar ao MongoDB e como deve se comportar enquanto estiver conectado. O exemplo a seguir mostra cada parte do URI de conexão:
Neste exemplo, conectamos a uma implantação do Atlas MongoDB que tem um registro DNS SRV. Para obter mais detalhes, consulte a documentação do formato de conexão da lista de sementes de DNS. Este formato oferece flexibilidade na implantação e a capacidade de alterar os servidores em rotação sem reconfigurar os clientes.
Observação
Para saber como recuperar sua string de conexão no Atlas, consulte o guia conexão de driver do Atlas.
Se você estiver se conectando a uma instância ou definir de réplicas que não tenha um endereço DNS SRV, deverá usar mongodb
para o protocolo, que especifica o formato de string de conexão padrão.
Após o protocolo, a próxima parte da connection string contém as credenciais se você estiver usando a autenticação baseada em senha. Substitua o valor de user
pelo seu nome de usuário e pass
pela sua senha. Se você estiver usando um mecanismo de autenticação que não requer um nome de usuário e senha, omita esta parte do URI de conexão.
A próxima parte da connection string especifica o nome do host ou endereço IP da sua instância MongoDB, seguido pelo número da porta. No exemplo acima, usamos sample.host
como o nome do host e 27017
como a porta. Substitua estes valores para apontar para a sua instância MongoDB.
A última parte da connection string contém opções de conexão e autenticação como parâmetros. No exemplo acima, definimos duas opções de conexão: maxPoolSize=20
e w=majority
. Para obter mais informações sobre opções de conexão, vá para a seção Opções de Conexão.
Exemplo de conexão do Atlas
Você deve criar um cliente para se conectar a um sistema MongoDB no Atlas. Para criar um cliente, crie uma instância do MongoClient
, passando em seu URI e um objeto MongoClientOptions
.
Dica
Reutilize seu cliente
Como cada MongoClient
representa um conjunto de conexões com o banco de dados, a maioria dos aplicativos requer apenas uma única instância de um MongoClient
, mesmo em várias solicitações. Para saber mais sobre como os connection pools funcionam no driver, consulte a página de perguntas frequentes.
Use a opção serverApi
no seu objeto MongoClientOptions
para habilitar a funcionalidade de API Estável, que força o servidor a executar operações com comportamento compatível com a versão de API especificada.
O código a seguir mostra como você pode especificar a cadeia de conexão e a opção de cliente Stable API ao se conectar a uma implementação do MongoDB no Atlas e verificar se a conexão foi bem-sucedida:
const { MongoClient, ServerApiVersion } = require("mongodb"); // Replace the placeholder with your Atlas connection string const uri = "<connection string>"; // Create a MongoClient with a MongoClientOptions object to set the Stable API version const client = new MongoClient(uri, { serverApi: { version: ServerApiVersion.v1, strict: true, deprecationErrors: true, } } ); async function run() { try { // Connect the client to the server (optional starting in v4.7) await client.connect(); // Send a ping to confirm a successful connection await client.db("admin").command({ ping: 1 }); console.log("Pinged your deployment. You successfully connected to MongoDB!"); } finally { // Ensures that the client will close when you finish/error await client.close(); } } run().catch(console.dir);
Para saber mais sobre o recurso de API estável, consulte a página de API estável.
Outras maneiras de se conectar ao MongoDB
Se estiver se conectando a uma única instância ou conjunto de réplicas do servidor MongoDB que não esteja hospedado no Atlas, consulte as seções a seguir para saber como se conectar.
Conecte-se a um servidor MongoDB em sua máquina local
Se você precisar executar um servidor MongoDB em seu computador local para fins de desenvolvimento, em vez de usar um cluster do Atlas, será necessário concluir o seguinte:
Baixe a versão Comunidade ou Enterprise do MongoDB Server.
Instale e configure o servidor MongoDB.
Inicie o servidor.
Importante
Sempre proteja seu servidor do MongoDB contra ataques maliciosos. Consulte nossa Lista de verificação de segurança para obter uma lista de recomendações de segurança.
Depois de iniciar com êxito o servidor MongoDB, especifique a connection string no código de conexão do driver.
Se o servidor MongoDB estiver em execução localmente, você poderá usar a seguinte cadeia de conexão:
mongodb://localhost:<port>
Nesta connection string, <port>
é o número da porta na qual você configurou o servidor para escutar conexões recebidas.
Se você precisar especificar um nome de host ou endereço IP diferente, consulte a entrada do Manual do servidor sobre strings de conexão.
Para testar se você pode se conectar ao seu servidor, substitua a string de conexão no exemplo de código Conectar ao MongoDB e execute-a.
Conectar a um conjunto de réplicas
Um sistema do conjunto de réplicas MongoDB é um grupo de instâncias conectadas que armazenam o mesmo conjunto de dados. Esta configuração de instâncias fornece redundância de dados e alta disponibilidade de dados.
Para conectar a um sistema do conjunto de réplicas, especifique o nome do host e os números de porta de cada instância, separados por uma vírgula, e o nome do conjunto de réplicas como o valor do parâmetro replicaSet
na connection string.
mongodb://host1:27017,host2:27017,host3:27017/?replicaSet=myRs
Ao fazer uma conexão, o driver executa as seguintes ação por padrão:
Descobre todos os membros do conjunto de réplicas quando recebe o endereço de qualquer membro.
Despacha operações para o nó apropriado, como gravação no primário.
Dica
Especificar todos os hosts
Para garantir a conectividade se um host não estiver disponível, forneça a lista completa de hosts ao se conectar a um conjunto de réplicas.
Conexão direta
Para forçar a execução de suas operações no host especificado no URI de conexão, você pode especificar a opção de conexão directConnection
. Se você especificar esta opção, deverá usar o formato URI de conexão padrão. O driver não aceita o formato de conexão de lista de seeds DNS (SRV) quando você especifica esta opção.
Quando você especifica directConnection
e se conecta a um membro secundário do conjunto de réplicas, suas operações de gravação falham porque o cliente não está conectado ao membro primário. Para realizar operações de leitura, você deve habilitar leituras secundárias. Consulte as opções de preferência de leitura para obter mais informações.