A Voyage AI se une ao MongoDB para impulsionar aplicativos de AI mais precisos e confiáveis no Atlas.

Explore o novo chatbot do Developer Center! O MongoDB AI chatbot pode ser acessado na parte superior da sua navegação para responder a todas as suas perguntas sobre o MongoDB .

Conecte-se a um MongoDB database usando o Node.js 3.3.2

Lauren Schaefer5 min read • Published Feb 04, 2022 • Updated Oct 01, 2024
SNIPPET
Facebook Icontwitter iconlinkedin icon
Classificar este exemplo de código
star-empty
star-empty
star-empty
star-empty
star-empty
QuickStart Node.js Logo
Usa Node.js? Quer aprender MongoDB? Esta série de blogs é para você!
Nesta série de Início rápido, mostrarei os fundamentos de como começar a usar o MongoDB com o Node.js. Na publicação de hoje, vamos abordar como se conectar a um MongoDB database a partir de um script Node.js, recuperando uma lista de bancos de dados e imprimindo os resultados em seu console.
Esta publicação usa o MongoDB 4.0, Driver MongoDB Node.js 3.3.2 e Node.js 10.16.3.
Clique aqui para ver uma versão mais recente desta publicação que usa MongoDB 4.4, driver Node.js do MongoDB 3.6.4 e Node.js 14.15.4.
Prefere aprender por vídeo? Podemos ajudar você. Confira o vídeo abaixo que mostra como se conectar e como realizar as operações CRUD.

configurar

Antes de começarmos, precisamos garantir que você tenha concluído algumas etapas de pré-requisito.

Instalar o Node.js

Primeiro, verifique se você tem uma versão compatível do Node.js instalada (o driver Node.js do MongoDB requer Node 4.x ou superior e, para esses exemplos, usei o Node.js 10.16.3).

Instale o driver Node.js do MongoDB

O driver Node.js do MongoDB permite que você interaja facilmente com MongoDB databases dentro de aplicativos Node.js. Você precisará do driver para se conectar ao seu banco de dados e executar as queries descritas nesta série de Início rápido.
Se você não tiver o driver Node.js do MongoDB instalado, poderá instalá-lo com o seguinte comando.
1npm install mongodb
No momento em que este artigo foi escrito, essa versão instalada 3.3.2 do driver. A execução do npm list mongodb exibirá o número da versão do driver atualmente instalado. Para obter mais detalhes sobre o driver e a instalação, consulte a documentação oficial.

Crie um MongoDB Atlas cluster gratuito e carregue os dados de amostra

Agora, você precisará de um MongoDB database. A maneira mais fácil de começar a usar o MongoDB é por meio do Atlas, o banco de dados como serviço totalmente gerenciado do MongoDB.
Vá para o Atlas e crie um novo cluster na camada grátis. De forma geral, um cluster é um conjunto de nós no qual as cópias do banco de dados serão armazenadas. Depois que a camada for criada, carregue os dados de exemplo. Se você não estiver familiarizado com como criar um novo cluster e carregar os dados de exemplo, confira este tutorial em vídeo do MongoDB Developer Advocate Maxime Beugnet.
Comece hoje mesmo com um cluster M0 no Atlas. É gratuito para sempre e é a maneira mais fácil de testar as etapas desta série publicada no blog.

Obtenha as informações de conexão do cluster

A etapa final é preparar seu cluster para conexão.
No Atlas, navegue até seu cluster e clique em CONNECT. O Cluster Connection Wizardr será exibido.
O assistente solicitará que você adicione seu endereço IP atual à lista de acesso IP e crie um usuário MongoDB, caso ainda não o tenha feito. Certifique-se de anotar o nome de usuário e a senha que você usa para o novo usuário do MongoDB, pois precisará deles em uma etapa posterior.
Em seguida, o assistente solicitará que você escolha um método de conexão. Selecione Conectar seu aplicativo . Quando o assistente solicitar que você selecione a versão do driver,selecione Node.js 3e.0 ou posterior. Copie a string de conexão fornecida.
Para obter mais detalhes sobre como acessar o Connection Wizard e realizar as etapas descritas acima, consulte a documentação oficial.

Conecte-se ao seu banco de dados de um aplicativo Node.js

Agora que tudo está configurado, é hora de programar! Vamos escrever um script Node.js que se conecta ao seu banco de dados e lista os bancos de dados em seu cluster.

Importar MongoClient

O módulo MongoDB exporta MongoClient e é isso que usaremos para nos conectarmos a um MongoDB database. Podemos usar uma instância do MongoClient para nos conectarmos a um cluster, acessar o banco de dados dele e fechar a conexão com ele.
1const { MongoClient } = require('mongodb');

Criar nossa função principal

Vamos criar uma função assíncrona chamada main() na qual nos conectaremos ao cluster do MongoDB, chamaremos funções que consultam nosso banco de dados e nos desconectaremos do nosso cluster.
A primeira coisa que precisamos fazer dentro de main() é criar uma constante para o nosso URI de conexão. O URI de conexão é a string de conexão que você copiou no Atlas na seção anterior. Ao colar a string de conexão, não se esqueça de atualizar <username> e <password> para que sejam as credenciais do usuário que você criou na seção anterior. A string de conexão inclui um placeholder <dbname>. Para estes exemplos, usaremos o banco de dados sample_airbnb, portanto, substitua <dbname> por .sample_airbnb
Observação: o nome de usuário e a senha fornecidos na string de conexão NÃO são os mesmos das credenciais do Atlas.
1/**
2* Connection URI. Update <username>, <password>, and <your-cluster-url> to reflect your cluster.
3* See https://docs.mongodb.com/ecosystem/drivers/node/ for more details
4*/
5const uri = "mongodb+srv://<username>:<password>@<your-cluster-url>/sample_airbnb?retryWrites=true&w=majority";
Agora que temos nosso URI, podemos criar uma instância do MongoClient.
1const client = new MongoClient(uri);
Observação: ao executar esse código, você pode ver DeprecationWarnings em torno da string de URL parser e no mecanismo de descoberta e monitoramento do servidor. Se você ver esses avisos, poderá removê-los passando as opções para o cliente MongoClient. Por exemplo, você pode instanciar MongoClient chamando new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true }). Consulte a documentação da API do driver do MongoDB do Node.js para obter mais informações sobre essas opções.
Agora estamos prontos para usar o MongoClient para conectar ao nosso cluster. client.connect() retornará uma promessa. Usaremos a palavra-chave await quando chamarmos client.connect() para indicar que devemos bloquear a execução adicional até que a operação seja concluída.
1await client.connect();
Agora podemos interagir com nosso banco de dados. Vamos criar uma função que imprima os nomes dos bancos de dados nesse cluster. Geralmente, é útil conter essa lógica em funções bem nomeadas para melhorar a legibilidade da sua base de código. Ao longo desta série, criaremos novas funções semelhantes à função que estamos criando aqui à medida que aprendemos a escrever diferentes tipos de consultas. Por enquanto, vamos chamar uma função cujo nome é listDatabases().
1await listDatabases(client);
Vamos envolver nossas chamadas para funções que interagem com o banco de dados em uma declaração try/catch para lidarmos com quaisquer erros inesperados.
1try {
2 await client.connect();
3
4 await listDatabases(client);
5
6} catch (e) {
7 console.error(e);
8}
Queremos ter certeza de que fechamos a conexão com nosso cluster, portanto, terminaremos nosso try/catch com uma declaração final.
1finally {
2 await client.close();
3}
Quando tivermos escrito nossa função main(), precisamos chamá-la. Vamos enviar os erros para o console.
1main().catch(console.error);
Juntando tudo, nossa função main() e nossa chamada para ela serão parecidas com a seguinte.
1async function main(){
2 /**
3 * Connection URI. Update <username>, <password>, and <your-cluster-url> to reflect your cluster.
4 * See https://docs.mongodb.com/ecosystem/drivers/node/ for more details
5 */
6 const uri = "mongodb+srv://<username>:<password>@<your-cluster-url>/test?retryWrites=true&w=majority";
7
8
9 const client = new MongoClient(uri);
10
11 try {
12 // Connect to the MongoDB cluster
13 await client.connect();
14
15 // Make the appropriate DB calls
16 await listDatabases(client);
17
18 } catch (e) {
19 console.error(e);
20 } finally {
21 await client.close();
22 }
23}
24
25main().catch(console.error);

Listar os bancos de dados em nosso cluster

Na seção anterior, fizemos referência à função listDatabases(). Vamos implementá-la!
Essa função recuperará uma lista de bancos de dados em nosso cluster e imprimirá os resultados no console.
1async function listDatabases(client){
2 databasesList = await client.db().admin().listDatabases();
3
4 console.log("Databases:");
5 databasesList.databases.forEach(db => console.log(` - ${db.name}`));
6};

Salvar seu arquivo

Você tem implementado muito código. Salve suas alterações e nomeie seu arquivo como connection.js. Para ver uma cópia do arquivo completo, visite o repositório GitHub nodejs-quickstart.

Executar seu script Node.js

Agora você já pode testar seu código! Execute seu script aplicando um comando como o seguinte em seu terminal: node connection.js.
Você verá uma saída como a seguinte:
1Databases:
2 - sample_airbnb
3 - sample_geospatial
4 - sample_mflix
5 - sample_supplies
6 - sample_training
7 - sample_weatherdata
8 - admin
9 - local

O que vem a seguir?

Hoje, você conseguiu se conectar a um MongoDB database a partir de um script Node.js, recuperar uma lista de bancos de dados em seu cluster e visualizar os resultados no console. Legal!
Agora que você se conectou ao seu banco de dados, siga para a próxima publicação desta série, na qual aprenderá a executar cada uma das operações CRUD (create, read, update e delete).
Enquanto isso, consulte os seguintes recursos:
Dúvidas? Comentários? Queremos muito interagir com você. Participe da conversa nos fóruns da MongoDB Community.

Facebook Icontwitter iconlinkedin icon
Classificar este exemplo de código
star-empty
star-empty
star-empty
star-empty
star-empty
Relacionado
Tutorial

Migrar do Azure CosmosDB para o MongoDB Atlas usando o Apache Kafka


May 09, 2022 | 3 min read
Tutorial

Rastreamento de localização em tempo real com Change Streams e Socket.io


Aug 13, 2024 | 8 min read
Início rápido

Início rápido: tipos de dados BSON - ObjectId


Sep 23, 2022 | 3 min read
Início rápido

Introdução ao Bun e ao MongoDB


Jul 19, 2024 | 9 min read