CREATE e READ simples com MongoDB + NodeJS

Neste artigo criarei um CREATE e READ básico utilizando MongoDB e Node.js. Caso você não conheça o MongoDB, recomendo a leitura deste artigo que explica como realizar as operações CREATE, READ, UPDATE e DELETE no shell do MongoDB.

O MongoDB é um NoSQL. Com o Node.js, iremos acessar o banco de dados usando o node. Crie uma pasta chamada crud_mongo e abra-a no code. Abra o terminal do code para prosseguir com o artigo.

Precisamos instalar o driver oficial do MongoDB. Utilizando o NPM, vamos baixar o pacote do Mongo.

npm install mongodb

Pronto. Agora temos o pacote instalado na nossa aplicação. Com isso, já é possível manipular bases de dados do MongoDB com o Nodejs.

CRIANDO A BASE DE DADOS

Para criar o banco de dados, vamos fazer uma requisição de um objeto MongoClient, especificando o URL de conexão com o endereço do localhost, a porta a ser utilizada e passando o nome da base de dados a ser criada.

const MongoClient = require('mongodb').MongoClient;
const url = "mongodb://localhost:27017/mydb";

MongoClient.connect(url, function(err, db){
    if (err) throw err;
    console.log("Banco de Dados criado!");
    db.close();
})

Execute o arquivo no seu servidor NodeJS. Você verá a mensagem: Banco de Dados Criado!

Observação: O banco de dados não é exatamente criado até que ele receba conteúdo. Vamos inserir conteúdo nesta base a seguir.

CRIANDO UMA COLEÇÃO

Para criar uma coleção na nossa base de dados, usaremos o método createCollection(). Neste médodo, passaremos o nome da coleção a ser criada.

const MongoClient = require('mongodb').MongoClient;
const url = "mongodb://localhost:27017/mydb";

MongoClient.connect(url, function (err, db) {
    if (err) throw err;
    let dbo = db.db("mydb");
    dbo.createCollection("clientes", function (err, res) {
        if (err) throw err;
        console.log("Coleção criada");
        db.close();
    });
});

E pronto, a nossa coleção foi criada!

INSERINDO DOCUMENTOS NA COLEÇÃO

Para inserir um documento (registro) na coleção, podemos utilizar o método insertOne() para registros simples, e insertMany() para registros múltiplos. Vamos realizar uma inserção de apenas um documento na nossa coleção:

const MongoClient = require('mongodb').MongoClient;
const url = "mongodb://localhost:27017/mydb";

MongoClient.connect(url, function (err, db) {
    if (err) throw err;
    let dbo = db.db("mydb");
    let myObj = {
        name: "Usuario 1",
        endereco: "Rua teste 1"
    };
    dbo.collection("clientes").insertOne(myObj, function (err, res) {
        if (err) throw err;
        console.log("Documento inserido");
        db.close();
    });
});

Se você tentar inserir documentos em uma coleção inexistente, o MongoDB criará a coleção automaticamente.

READ (find())

Para selecionar os dados de uma coleção no Mongo, podemos utilizar os métodos findOne() e find(), que seleciona um dado e todos os dados da coleção, respectivamente. Utilize o método toArray para retornar os elementos em um vetor.

const MongoClient = require('mongodb').MongoClient;
const url = "mongodb://localhost:27017/mydb";

MongoClient.connect(url, function (err, db) {
    if (err) throw err;
    let dbo = db.db("mydb");
    dbo.collection("clientes").find({}).toArray(function (err, result) {
        if (err) throw err;
        console.log(result);
        db.close();
    });
});

E nosso retorno será:

Com isso, já sabemos inserir e pesquisar dados no MongoDB utilizando o NodeJS.

Referência: https://www.w3schools.com/nodejs/nodejs_mongodb.asp

Até o próximo artigo pessoal!