Visão geral
Para se conectar a um MongoDB deployment, você precisa de duas coisas:
URI de conexão, também conhecido como string de conexão, que informa ao driver do Node.js a qual deployment do MongoDB se conectar.
objeto MongoClient, que cria a conexão e executa operações no MongoDB deployment.
Você também pode usar o MongoClientOptions
para personalizar a forma como o driver Node.js se comporta enquanto conectado ao MongoDB.
Este guia mostra como criar uma string de conexão e usar um objeto MongoClient
para se conectar ao MongoDB.
URI de conexão
Uma connection string padrão inclui os seguintes componentes:
Componente | Descrição |
---|---|
| Obrigatório. Um prefixo que identifica isso como uma string no formato de conexão padrão. |
| Opcional. Credenciais de autenticação. Se você incluir estes, o cliente autenticará o usuário no banco de dados especificado no |
| Obrigatório. O host e o número da porta opcional em que o MongoDB está sendo executado. Se você não incluir o número da porta, o driver usará a porta padrão, |
| Opcional. O authentication banco de dados de autenticação a ser usado se a string de conexão incluir as credenciais de autenticação |
| Opcional. Uma string de consulta que especifica opções específicas de conexão como |
Para obter mais informações sobre a criação de uma connection string, consulte connection strings na documentação do MongoDB Server .
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 pool de conexões funcionam no driver, consulte a página Pools de conexões.
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.
Dica
Gerenciamento explícito de recursos
O driver Node.js suporta nativamente o gerenciamento explícito de recursos MongoClient
ClientSession
para,, ChangeStreams
e cursores. Este recurso é experimental e sujeito a alterações. Para saber como usar o gerenciamento explícito de recursos, consulte as Notas de versão do v.6.9
Para saber mais sobre o recurso de API estável, consulte a página de API estável.
Impedir que uma operação lenta atrase outras operações
Quando você utiliza a mesma instância do MongoClient
para executar múltiplas operações MongoDB simultaneamente, uma operação lenta pode causar atrasos para outras operações. Operações lentas mantêm uma conexão com o MongoDB ocupado, o que pode fazer com que outras operações esperem até que outra conexão fique disponível.
Se você suspeitar que as operações lentas do MongoDB estão causando atrasos, poderá verificar o desempenho de todas as operações em andamento usando os seguintes métodos:
Habilite o criador de perfil de banco de dados em seu sistema. Para saber mais, consulte Database Profiler no manual do servidor MongoDB.
Execute o comando
db.currentOp()
do MongoDB Shell. Para saber mais, consulte a documentação db.currentOp() no manual do servidor.Habilite o monitoramento do pool de conexões . Para saber mais, consulte Eventos do pool de conexões.
Depois de determinar quais operações estão causando atrasos, tente melhorar o desempenho dessas operações. Leia o Guia de melhores práticas para o desempenho do MongoDB para ver possíveis soluções.
Se você implementar práticas recomendadas de desempenho, mas ainda enfrentar atrasos, poderá modificar suas configurações de conexão para aumentar o tamanho do pool de conexões. Um pool de conexões é o grupo de conexões ao servidor que o driver mantém a qualquer momento.
Para especificar o tamanho máximo de um pool de conexões, você pode definir a opção maxPoolSize
nas opções de conexão da instância MongoClient
. O valor padrão de maxPoolSize
é 100
. Se o número de conexões em uso com um servidor atingir maxPoolSize
, a próxima operação enviada ao servidor será pausada até que uma conexão com o driver fique disponível. O seguinte código define maxPoolSize
como 150
ao criar um novo MongoClient
:
const client = new MongoClient(uri, { maxPoolSize: 150 });
Dica
Para saber mais sobre o pool de conexões, consulte a seção Visão geral do pool de conexões na página Pools de conexões.
Documentação da API
Para obter mais informações sobre como criar um objeto MongoClient
com o driver Node.js , consulte a seguinte documentação da API: