Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/ / /
Controlador Node.js
/

Criar um MongoClient

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.

Uma connection string padrão inclui os seguintes componentes:

Componente
Descrição

mongodb://

Obrigatório. Um prefixo que identifica isso como uma string no formato de conexão padrão.

username:password

Opcional. Credenciais de autenticação. Se você incluir estes, o cliente autenticará o usuário no banco de dados especificado no authSource. Para obter mais informações sobre a opção de conexão authSource, consulte Verificar se o usuário está no banco de dados de autenticação no guia Solução de problemas de conexão.

host[:port]

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, 27017.

/defaultauthdb

Opcional. O authentication banco de dados de autenticação a ser usado se a string de conexão incluir as credenciais de autenticação username:password@, mas não a opção authSource. Quando você chama client.db() sem argumento, este é o banco de dados que é utilizado. Se você não incluir este componente, o cliente autenticará o usuário no banco de dados do admin.

?<options>

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

Para obter mais informações sobre a criação de uma connection string, consulte connection strings na documentação do MongoDB Server .

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 ClientSessionpara,, 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.

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.

Para obter mais informações sobre como criar um objeto MongoClient com o driver Node.js , consulte a seguinte documentação da API:

Voltar

Conecte

Nesta página