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 string de conexão 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);
Observação
O driver Node.js chama automaticamente o método MongoClient.connect()
ao usar o cliente para realizar operações CRUD em sua implantação do MongoDB. Chame o método MongoClient.connect()
explicitamente se quiser verificar se a conexão foi bem-sucedida.
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
Para se conectar a uma MongoDB deployment em sua máquina local, siga as seguintes etapas:
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ê quiser 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.