Node.js e
MongoDB
http://www.luiztools.com.br
MongoDB - Movies
Conexão
CRONOGRAMA
MongoDB -
Movies
MongoDB - Movies
● identificador único
● título
● duração (em minutos)
● imagem (capa promocional)
● sinopse
● data de lançamento
● categorias (ação, romance, etc)
Modelo
MongoDB - Movies
MongoDB - Movies
{
_id: ObjectId("sacbaskbcksabckscstds67ds"),
titulo: "Vingadores: Guerra Infinita",
sinopse: "Os heróis mais poderosos da Marvel
enfrentando o Thanos",
duracao: 120,
dataLancamento: ISODate("2018-05-01T00:00:00Z"),
imagem: "http://www.luiztools.com.br/vingadores-
gi.jpg",
categorias: ["Aventura", "Ação"]
}
Documento
MongoDB - Movies
./mongod --dbpath /cinema-
microservice/movies-service/data
Iniciando
MongoDB - Movies
db.movies.insert([{ titulo: "Os Vingadores: Guerra Infinita", sinopse: "Os heróis
mais poderosos da Marvel enfrentando o Thanos", duracao: 120, dataLancamento:
ISODate("2018-05-01T00:00:00Z"), imagem:
"http://www.luiztools.com.br/vingadores-gi.jpg", categorias: ["Aventura", "Ação"]
}, { titulo: "Os Vingadores: Era de Ultron", sinopse: "Os heróis mais poderosos da
Marvel enfrentando o Ultron", duracao: 110, dataLancamento: ISODate("2016-05-
01T00:00:00Z"), imagem: "http://www.luiztools.com.br/vingadores-eu.jpg",
categorias: ["Aventura", "Ação"] }, { titulo: "Os Vingadores", sinopse: "Os heróis
mais poderosos da Marvel enfrentando o Loki", duracao: 100, dataLancamento:
ISODate("2014-05-01T00:00:00Z"), imagem:
"http://www.luiztools.com.br/vingadores.jpg", categorias: ["Aventura", "Ação"] }])
Populando
MongoDB - Movies
Criar:
/cinema-microservice/movies-
service/src/config/mongodb.js
/cinema-microservice/movies-
service/src/.env
/cinema-microservice/movies-
service/src/.env.example
Preparando
MongoDB - Movies
.env.example
#.env.example, commit to repo
MONGO_CONNECTION=
DATABASE_NAME=
PORT=
Preparando
MongoDB - Movies
.env
#.env, don't commit to repo
MONGO_CONNECTION=mongodb://localhost:27017
DATABASE_NAME=movie-service
PORT=3000
Preparando
MongoDB - Movies
const MongoClient = require("mongodb").MongoClient;
var connection = null;
var db = null;
Conectando
MongoDB - Movies
function connect(callback){
if(connection) return callback(null, db);
MongoClient.connect(process.env.MONGO_CONNECTION,
(err, conn) => {
if(err)
return callback(err, null);
else {
connection = conn;
db = conn.db(process.env.DATABASE_NAME);
return callback(null, db);
}
})
}
Conectando
MongoDB - Movies
function disconnect(){
if(!connection) return true;
connection.close();
connection = null;
return true;
}
module.exports = { connect, disconnect }
Conectando
Dúvidas?
Exercícios
1 Modele o banco do booking-service
2 Modele o banco do payments-service
3 Modele o banco do grocery-inventory-service
Obrigado!

Curso de Node.js e MongoDB - 14