Trabalhando com Docker + Node.js + TypeScript + MongoDB

Veja nessa artigo alguns links sobre como trabalhar com Docker e o Docker Compose em um projeto desenvolvido com Node.js, TypeScript e MongoDB

Abaixo vocês tem os links do módulo como trabalhar com Docker do meu Curso Criando API’s RESTful utilizando TypeScript, Node.js, mongoDB

Espero que tenham gostado e até um próximo artigo pessoal 🙂

Referência: https://medium.com/typescript/trabalhando-com-docker-node-js-typescript-mongodb-a341d42e1fc0

Curso: Criando API’s RESTful utilizando TypeScript, Node.js, mongoDB, Redis e Docker no Azure – Parte 2

2-Parte: Configurando o ambiente de banco de dados com Docker

Dando continuidade a liberação dos módulos do meu curso: Criando API’s RESTful utilizando TypeScript, Node e mongoDB, hoje eu irei demonstrar como subir um ambiente Docker com o MongoDB e como acessar essa base de dados.

Caso você seja iniciante em Docker, eu recomendo a leitura do seguinte artigo: Comando básicos docker.

Artigo contendo um passo a passo de como configurar um ambiente MongoDB com Docker: Docker: Criando servidor MongoDB

Configurando ambiente de banco de dados MongoDB com Docker

Acessando a base de dados mongoDB

Link para download do Robo 3T: Download

Espero que gostem e qualquer dúvida podem postar aqui ou no vídeo do Youtube.

Gostou deste artigo? Comente abaixo!

Referência: https://medium.com/xp-inc/curso-criando-apis-restful-utilizando-typescript-node-js-mongodb-redis-e-docker-no-azure-6bb8a0d04a4e

Curso: Criando API’s RESTful utilizando TypeScript, Node.js, mongoDB, Redis e Docker no Azure Parte 1

Para aqueles que colocaram como meta aprender algo novo na area de programação em 2020, eu estou disponibilizando alguns módulos do meu curso: Criando API’s RESTful utilizando TypeScript, Node e mongoDB.

Segue abaixo as primeiras video aulas liberadas 🙂

Introdução ao curso:

Ambiente de desenvolvimento:

Instalação do Node.js

Instalação do TypeScript

Aproveitando, segue link para download das ferramentas que nós iremos utilizar nesse curso abaixo:

Espero que gostem 🙂

Referência: https://medium.com/xp-inc/curso-criando-apis-restful-utilizando-typescript-node-js-mongodb-redis-e-docker-no-azure-152edbcc1f2c

Comparando os termos utilizados no NoSQL com SQL

SQL

SQL é a sigla utilizada para “Structured Query Language” que traduzindo para o português significa: “Linguagem de Consulta Estruturada”.

NoSQL

NoSQL (Not Only SQL) é o termo utilizado para banco de dados não relacionais. Ele foi desenvolvido para ter uma performance melhor e uma escalabilidade mais horizontal para suprir necessidades onde os bancos relacionais não são muito eficazes.

  • Colunas: Os dados são armazenados em linhas dentro de tabela no disco. Um exemplo de banco de dados neste formato é o Cassandra
  • Grafos: Os dados são armazenados em forma de grafos (vértices e arestas). Um exemplo de banco de dados neste formato é o Neo4j
  • Chave-valor: Em algumas pesquisas e testes realizados pela internet, esta família de banco NoSQL é a que mais aguenta carga de dados, pois o seu conceito é que um determinado valor seja acessado através de uma chave identificadora única. Um exemplo de banco de dados neste formato é o Redis.

Image for post

Image for post
Comparando SQL com NoSQL fonte: (codersera)

Os termos utilizados em cada um deles:

Image for post
Conhecendo os termos entre SQL e NoSQL
Image for post
Comparando as instruções de inserção e consulta no SQL com NoSQL

Referência: https://medium.com/xp-inc/comparando-os-termos-utilizados-no-nosql-com-sql-e862788e2374

MERN stack, o que é?

Você já ouviu falar no termo MERN stack?

Por definição, MERN significa:

  • (M) MongoDB;
  • (E) ExpressJs;
  • (R) React;
  • (N) Node.js;

Ou seja, é chamado de MERN stack o profissional que domina todas essas quatro tecnologias. É uma stack que permite a criação de sites/sistemas completos (back-end e front-end) utilizando JavaScript no lado do Cliente e lado do Servidor. Com isso, o desenvolvedor fica apto a criar sites/sistemas completos, sem precisar conhecer outra tecnologia ou utilizar outra habilidade. O MERN stack representa uma aliança das tecnologias mais poderosas do mercado, pois oferece a possibilidade de dominar a parte de algoritmos e lógica utilizada no back-end, juntamente com os componentes de design, UX e animações que o front-end é responsável. Isso traz uma competência para apenas um desenvolvedor, onde, normalmente, seriam exigidos dois.

Atualmente, com a alta utilização do JavaScript, o MERN stack é um dos profissionais mais requisitados no mercado.

E quais são as tecnologias utilizadas?

  • MongoDB: É um banco de dados não-relacional. É utilizado na MERN stack pois os dados são manipulados no formato JSON.
  • Node.js: O Node.js trabalha com JavaScript, ou seja, um desenvolvedor que conheça bem a linguagem JavaScript não terá dificuldades em aprender Node.js.
  • Express.js: Um middleware dedicado ao gerenciamento de apps web complexos, é usado para criação de API REST. A API REST corresponde a um site que recuperará dados por meio de solicitações HTTP.
  • React.js: Responsável pelo front-end, é uma biblioteca JavaScript desenvolvida e utilizada pelo Facebook. Responsável por fazer, de maneira extremamente rápida, animações, uploads e transições.

Assim como a MERN stack, também temos a MEAN stack onde o React não é utilizado, mas sim o Angular, alterando somente a biblioteca/framework utilizado no Front-end. Utilizando o Vue.js, teremos o MEVN stack, ou seja, são muitas as opções para quem quer dominar Front e Back-end utilizando JavaScript!.

Dominando essas tecnologias, você é um desenvolvedor MERN/MEAN/MEVN stack!

Gostou deste artigo? Comente abaixo!

Referências:

 

UPDATE e DELETE simples com MongoDB + NodeJS

Dando sequência ao CRUD com MongoDB e NodeJS, no artigo anterior foram mostrados os métodos CREATE e READ. Neste artigo, demonstrarei como fazer um UPDATE e DELETE básicos.

UPDATE

Você pode utilizar o método updateOne() para atualizar um documento na sua coleção, passando como parâmetro o objeto a ser atualizado. O segundo parâmetro é o objeto que define os novos valores do documento.

Se a consulta encontra mais de um registro, somente a primeira ocorrência será atualizada.

Para realizar este update, vamos salvar o nosso valor a ser alterado em uma variável chamada valorAntigo e, também, adicionar os novos valores em outra variável, chamada valorNovo. Feito isso, vamos passar essas duas variáveis como parâmetro do nosso método updateOne().

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 valorAntigo = {
        name: 'Usuario 1'
    };
    let valorNovo = { 
        $set: {
            name: 'Usuario Novo', endereco: 'Rua Nova' 
        } 
    };
    dbo.collection("clientes").updateOne(valorAntigo, valorNovo, function (err, res){
        if (err) throw err;
        console.log('Documento atualizado');
        db.close(); 
    });
});

Executando o arquivo, teremos uma mensagem no terminal, dizendo: “Documento atualizado”.

Podemos também apenas alterar um valor específico. Para isso, passamos à variável valorNovo apenas o novo valor do campo.

Você pode atualizar diversos campos utilizando o método updateMany().

Para verificar o seu documento atualizado, utilize o método find().

DELETE

Para excluirmos um documento, usamos o método deleteOne(), que especifica o documento a ser excluído. Devemos passar como parâmetro o campo do registro a ser excluído. Por exemplo, excluiremos o nosso “Usuario Novo”.

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 excluirDocumento = { name: 'Usuario Novo' };
    dbo.collection('clientes').deleteOne(excluirDocumento, function(err, obj){
        if (err) throw err;
        console.log("1 documento deletado");
        db.close();
    });
});

E você deverá ver no seu terminal a mensagem: “1 documento deletado”.

Você pode utilizar o método deleteMany() para deletar múltiplos documentos.

Verifique, utilizando o método find(), que o seu registro está vazio.

Gostou deste artigo? Comente abaixo!

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!

Exportando arquivos CSV com MongoDB

Olá, hoje exportaremos arquivos CSV com o MongoDB. O MongoDB é um banco de dados não-relacional que traz o conceito de Banco de Dados Orientado a Documentos. Ele tem como característica conter informações importantes em um único documento. Deste modo, possibilita a consulta de documentos através de métodos avançados de agrupamento e filtragem.

Caso você não conheça o MongoDB e não saiba fazer um CRUD básico, recomendo a leitura do artigo:

https://www.mundojs.com.br/2020/03/17/crud-basico-com-mongodb/

Caso já conheça, mas queira importar arquivos CSV, recomendo o seguinte artigo:

(Vamos utilizar esse artigo como base do nosso estudo)

https://www.mundojs.com.br/2020/03/27/importando-arquivos-com-mongodb/

E arquivos JSON:

https://www.mundojs.com.br/2020/03/30/importando-arquivos-json-com-mongodb/

Exportando arquivos JSON:

https://www.mundojs.com.br/2020/04/01/exportando-arquivos-json-com-mongodb/

Com o seu mongoDB devidamente configurado, começaremos a exportar os arquivos.

Primeiro, precisamos abrir o diretório em que trabalharemos. Utilize o comando cd diretorio para especificar o diretório a ser trabalhado.

Utilizando o comando mongoexport, precisamos especificar o nosso host, que no meu caso é 127.0.0.1. Após isso, utilizaremos a sintaxe –db nomedodocumento, que especifica em qual documento está o arquivo a ser exportado. Caso não exista, será criado.

Utilizaremos também a sintaxe –collection nomedacollection, que cria/especifica qual a coleção.

Especificados o host, nome do documento e nome da collection, precisamos especificar o tipo de arquivo. Usamos o –type csv para especificá-lo. Também precisamos do nome do arquivo  + extensão a ser exportado. Como já sabemos, o nosso arquivo é o cities.csv, e você usa a sintaxe –out para isso.

Utilizaremos o método –field para especificar os nomes dos campos a ser utilizados no CSV. Vamos utilizar os campos id,LatD,LatM,LatS,NS,LonD,LonM,LonS,EW,City,State.

E o comando ficará assim:

mongoexport --host=127.0.0.1 --db enderecos --collection listaenderecos --type=csv --out cities.csv --fields id,LatD,LatM,LatS,NS,LonD,LonM,LonS,EW,City,State

E a saída será:

connected to: mongodb://127.0.0.1/
exported 128 records

Com isso, exportamos nosso arquivo CSV com sucesso!

Verifique o diretório para confirmar a exportação do seu arquivo CSV.

Gostou deste artigo? Comente abaixo!

Exportando arquivos JSON com MongoDB

Olá, hoje exportaremos arquivos JSON com o MongoDB. O MongoDB é um banco de dados não-relacional que traz o conceito de Banco de Dados Orientado a Documentos. Ele tem como característica conter informações importantes em um único documento. Deste modo, possibilita a consulta de documentos através de métodos avançados de agrupamento e filtragem.

Caso você não conheça o MongoDB e não saiba fazer um CRUD básico, recomendo a leitura do artigo:

https://www.mundojs.com.br/2020/03/17/crud-basico-com-mongodb/

Caso já conheça, mas queira importar arquivos CSV, recomendo o seguinte artigo:

https://www.mundojs.com.br/2020/03/27/importando-arquivos-com-mongodb/

E arquivos JSON:

https://www.mundojs.com.br/2020/03/30/importando-arquivos-json-com-mongodb/

Com o seu mongoDB devidamente configurado, começaremos a exportar os arquivos.

Primeiro, precisamos abrir o diretório em que trabalharemos. Utilize o comando cd diretorio para especificar o diretório a ser trabalhado.

Utilizando o comando mongoexport, precisamos especificar o nosso host, que no meu caso é 127.0.0.1. Após isso, utilizaremos a sintaxe –db nomedodocumento, que especifica em qual documento está o arquivo a ser exportado. Caso não exista, será criado.

Utilizaremos também a sintaxe –collection nomedacollection, que cria/especifica qual a coleção.

Especificados o host, nome do documento e nome da collection, precisamos especificar o nome do arquivo + extensão a ser exportado. Como já sabemos, o nosso arquivo é o example_2.json, e você usa a sintaxe –out para isso.

Utilizaremos os métodos –jsonArray para trazer os documentos JSON em um único array e –pretty, para trazer o documento formatado.

E o comando ficará assim:

mongoexport --host=127.0.0.1 --db quiz --collection listaquiz --out example_2.json --jsonArray --pretty

E a saída será:

connected to: mongodb://127.0.0.1/
exported 1 record

Com isso, exportamos nosso arquivo JSON com sucesso!

Verifique o diretório para confirmar a exportação do seu arquivo JSON.

Gostou deste artigo? Comente abaixo!

Importando arquivos JSON com MongoDB

Olá, hoje importaremos arquivos JSON para o MongoDB. O MongoDB é um banco de dados não-relacional que traz o conceito de Banco de Dados Orientado a Documentos. Ele tem como característica conter informações importantes em um único documento. Deste modo, possibilita a consulta de documentos através de métodos avançados de agrupamento e filtragem.

Caso você não conheça o MongoDB e não sabia fazer um CRUD básico, recomendo a leitura do artigo:

https://www.mundojs.com.br/2020/03/17/crud-basico-com-mongodb/

Caso já conheça, mas queira importar arquivos CSV, recomendo o seguinte artigo:

https://www.mundojs.com.br/2020/03/27/importando-arquivos-com-mongodb/

Agora que você já leu, vamos lá!

Para realizar este exemplo, utilizei o site: https://support.oneskyapp.com/hc/en-us/articles/208047697-JSON-sample-files que disponibiliza vários tipos de arquivos JSON como exemplo. Para o nosso exemplo, utilizaremos o arquivo example_2.json, que contém um quiz sobre esportes.

Com o seu mongoDB devidamente configurado, começaremos a importar os arquivos.

Primeiro, precisamos abrir o diretório em que trabalharemos. Recomendo deixar o arquivo json a ser importado no mesmo diretório. Utilize o comando cd diretorio para especificar o diretório a ser trabalhado.

Utilizando o comando mongoimport, precisamos especificar o nosso host, que no meu caso é 127.0.0.1. Após isso, utilizaremos a sintaxe –db nomedodocumento, que especifica em qual documento será importado. Caso não exista, será criado.

Utilizaremos também a sintaxe –collection nomedacollection, que cria/especifica qual a coleção. Caso ela não exista, será criada.

Especificados o host, nome do documento e nome da collection, precisamos especificar o nome do arquivo + extensão a ser importado. Como já sabemos, o nosso arquivo é o example_2.json, e você usa a sintaxe –file para isso.

E o comando ficará assim:

mongoimport --host=127.0.0.1 --db quiz --collection listaquiz --file example_2.json

E a saída será:

connected to: mongodb://127.0.0.1/

1 document(s) imported successfully. 0 document(s) failed to import.

Com isso, importamos o nosso arquivo JSON com sucesso!

Utilizando o find(), verificamos que foi importado:

Gostou deste artigo? Comente abaixo!