Visão geral
Neste guia, você pode aprender como utilizar uma string de conexão e um objeto do MongoClient para conectar a diferentes tipos de sistemas MongoDB .
Dica
Para saber mais sobre como recuperar sua string de conexão, consulte o guia Conectar via drivers na documentação do Atlas.
Atlas
Para se conectar a uma MongoDB deployment no Atlas, inclua os seguintes elementos em sua connection string:
URL do seu cluster Atlas
Nome de usuário do MongoDB
Senha do MongoDB
Em seguida, passe sua connection string para o construtor MongoClient .
Ao se conectar ao Atlas, recomendamos usar a opção de cliente Stable API para evitar alterações significativas quando o Atlas atualizar para uma nova versão do MongoDB Server. Para saber mais sobre o recurso de Stable API , consulte o guia de Stable API .
O código abaixo mostra como usar o driver Node.js para se conectar a um Atlas cluster. O código também usa o campo server_api para especificar uma versão da API estável.
const { MongoClient, ServerApiVersion } = require("mongodb"); // Replace the placeholder with your Atlas connection string const uri = "<connection string>"; // Creates 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 { // Connects the client to the server (optional starting in v4.7) await client.connect(); // Sends 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);
Implantações locais
Para se conectar a uma implantação local do MongoDB autônomo , especifique o host do servidor. Opcionalmente, especifique a porta do servidor. Se nenhuma porta for especificada, a porta padrão será 27017.
Você pode especificar o host e a porta aos quais se conectar usando uma string de conexão, conforme mostrado no código a seguir:
const client = new MongoClient("mongodb://host1:27017");
Você também pode especificar seu host como localhost. O seguinte exemplo de código se conecta ao localhost na porta especificada:
const client = new MongoClient("mongodb://localhost:27017");
Conjuntos de réplicas
Para se conectar a um conjunto de réplicas, recomendamos que você especifique todos os nós que fazem parte do conjunto de réplicas. Se um ou mais nós ficarem indisponíveis, especificar todos os nós permite que o driver ainda se conecte ao conjunto de réplicas se um nó estiver disponível.
No entanto, é suficiente passar o endereço de qualquer nó do conjunto de réplicas para o driver. O nó não precisa ser o primário, e pode ser um nó oculto. Em seguida, o driver descobrirá automaticamente os nós restantes.
O exemplo a seguir mostra como se conectar ao conjunto de réplicas usando uma string de conexão e como verificar o nome do conjunto de réplicas na conexão usando a opção de string de conexão replicaSet:
const client = new MongoClient("mongodb://host1:27017,host2:27017,host3:27017/?replicaSet=myRs");
Observação
Conjunto de réplicas no Docker
Quando um conjunto de réplicas é executado no Docker, ele pode expor apenas um endpoint MongoDB . Nesse caso, o conjunto de réplicas não é detectável. Especificar directConnection=false em seu URI de conexão ou deixar essa opção sem definir pode impedir que seu aplicação se conecte a ele.
Em um ambiente de teste ou desenvolvimento, é possível conectar-se ao conjunto de réplicas especificando directConnection=true. Em um ambiente de produção, recomendamos configurar o cluster para que cada instância do MongoDB seja acessível fora da rede virtual do Docker.
Descoberta de serviço DNS
Para usar a descoberta de serviços DNS para procurar o registro DNS SRV do serviço ao qual você está se conectando, especifique o formato de conexão SRV em sua string de conexão. Se você especificar este formato, o driver do Node.js reanalisa automaticamente para novos hosts. Seu sistema pode adicionar hosts à topologia sem exigir alterações na configuração do cliente .
O código a seguir mostra uma string de conexão que usa o formato de conexão SRV:
const uri = "mongodb+srv://<hostname>/"
To learn more about the SRV connection format, see the SRV Connection Format entry in the MongoDB Server manual.
Documentação da API
Para saber mais sobre como criar um objeto MongoClient com o driver Node.js, consulte a documentação da API do MongoClient .