SlideShare a Scribd company logo
1 of 31
MongoDB
"Livre por necessidade... Linux por opção."
$Whoami
▪ SA Tecnologia
▪ Gerente de Projetos
▪ Administrador de Servidores Linux | Windows
▪ Graduado em Analise e Desenvolvimento de Sistemas
▪ Programador em Shell, Nodejs e Java
▪ Teste de invasão em redes, Sistemas e Aplicações
Mongo ?
humongous
MongoDB
“Gigantesco”
Empresas que utilizam Mongodb
Mongodb Drivers
Pesquisa
http://db-engines.com/en/ranking
Modelo Relacional
Modelo Não Relacional
Modelo Mongoose
Insert Mysql
insert into usuario(nome,email) values (‘teste’,’teste@mail.com’);
Insert into postagem (titulo,conteudo) values (‘Testando’,’Teste de Postagem’);
Insert into comentário (postagem_id,usuario_id,conteudo) values (1,1,’Testando conteudo’);
Insert MongoDB
db.postagem.insert({
titulo: 'Teste de Titulo',
conteudo: 'Testando postagem'
});
db.usuario.insert({
nome: 'Teste',
email: 'teste@teste.com.br'
});
db.comentario.insert({
postagem_id: ObjectId("56e02b9e8cef82547073c15b"),
usuario_id: ObjectId("56e02beb8cef82547073c15c"),
conteudo: 'Teste de comentario'
})
Select Modelo Relacional
Select * from comentário;
Select * from usuário;
Select * from postagem;
Select MongoDB
db.postagem.find();
{
“_id”: ObjectId(“56e02beb8cef82547073c15c”)
“nome”: “teste”
“email”: “ teste@teste.com.br ”
}
db.postagem.find();
{
“_id”: ObjectId(“56e02b9e8cef82547073c15b”)
“titulo”: “Teste de Titulo”
“conteudo”: “Testando postagem”
}
db.comentario.find();
{
“_id”: ObjectId(“56e02c488cef82547073c15d”),
“postagem_id”: ObjectId("56e02b9e8cef82547073c15b"),
“usuario_id”: ObjectId("56e02beb8cef82547073c15c"),
“conteúdo”: “Teste de comentário”
}
Update Modelo Relacional
update postagem set titulo=‘abc’,conteudo=‘testeabc’ where id = 1
update usuario set nome=‘abc’,email=‘abc@teste.com.br where id = 1
update comentario set conteudo=‘testeabccomentario’ where id =1
Update MongoDB
db.postagem.update({
_id: ObjectId("56e02b9e8cef82547073c15b")},
{$set: {nome: 'abc',conteudo:'testabc'}}
});
db.comentario.update({
_id: ObjectId(“56e02c488cef82547073c15d”)},
{$set: {conteudo: 'testeabccomentario'}}
});
db.usuario.update({
_id: ObjectId("56e02beb8cef82547073c15c")},
{$set: {nome: 'abc',email:'abc@teste.com.br'}}
});
Delete Modelo Relacional
delete from comentario where id = 1
delete from usuario where id = 1
delete from postagem where id = 1
Delete MongoDB
db.postagem.remove({
_id: ObjectId("56e02b9e8cef82547073c15b")
});
db.comentario.remove({
_id: ObjectId(“56e02c488cef82547073c15d”)
});
db.usuario.remove({
_id: ObjectId("56e02beb8cef82547073c15c")
});
Inner Join Modelo Relacional
select * from comentario
inner join postagem
inner join usuario
on comentario.usuario_id = usuario.id and postagem.id =
comentario.postagem_id;
MongoDb (Ref)
var userResult,comentResult;
var getUsuario = function(user){
userResult = db.usuario.findOne({_id: user});
}
var getPostagem = function(coment){
comentResult = db.postagem.findOne({_id: coment});
}
var lista = db.comentario.findOne();
getUsuario(lista.usuario_id);
getPostagem(lista.postagem_id)
userResult
comentResult
Algo errado, não acha ?
Novo Modelo (Mongodb)
Novo Modelo (Mongodb)
db.postagem.insert({
titulo: 'Testando',
conteudo: 'Testandoabc',
comentarios: [{
usuario:
{
"_id": ObjectId("56de20e60fefe7553c045891"),
"pontuacao": "795",
"email": "Lelia_Harber@lori.us",
"nome": "Boyd Walsh III"
},
conteudo: 'Texto‘
}]
})
Novo Modelo (Mongodb)
db.postagem.find();
{
"_id": ObjectId("56e1b58e2dd078b5732d4693"),
"titulo": "Testando",
"conteudo": "Testandoabc",
"comentarios": [ {
"usuario": { "_id": ObjectId("56de20e60fefe7553c045891"),
"pontuacao": "795", "email": "Lelia_Harber@lori.us",
"nome": "Boyd Walsh III“
},
"conteudo": "Texto“
} ]
}
Vantagens
▪ Consultas simples
▪ Sharding
▪ GridFS
▪ ReplicaSet
▪ Escalável horizontalmente
▪ Suporta Grande Quantidade de Dados
▪ Open Source
▪ Treinamento Gratuito https://university.mongodb.com/
▪ Suporte Enterprise
Em todos Projetos ?
Desvantagens
▪ Alto uso de Memoria RAM
▪ Índices devem caber na memória RAM
▪ Cada Shard requer mínimo 3 Servidores (eles devem ter o mesmo perfil)
▪ ReplicaSet (Limite 12 nós)
▪ Falta de Transações
▪ Versão 32 Bits tem limite de dados (Documento de 16mb Tamanho)
▪ Poucas Ferramentas para Administração
Teste de Performance
Mongodb X Mysql
Duvidas ?
▪ Rede de investidores
▪ Sua ideia = Sua Startup
▪ Nossa ideia = Nossa Startup
/contatos
https://www.facebook.com/higor.diego.5
github: https://github.com/higordiego
email: higordiego@satecnologia.com.br
Obrigado

More Related Content

What's hot

What's hot (9)

Windows Azure 5/8 - Recursos adicionais do Windows Azure
Windows Azure 5/8 - Recursos adicionais do Windows AzureWindows Azure 5/8 - Recursos adicionais do Windows Azure
Windows Azure 5/8 - Recursos adicionais do Windows Azure
 
Aumentando a produtividade com Android Libs
Aumentando a produtividade com Android LibsAumentando a produtividade com Android Libs
Aumentando a produtividade com Android Libs
 
Wicket 2008
Wicket 2008Wicket 2008
Wicket 2008
 
Aula 05/06 (Service)
Aula 05/06 (Service)Aula 05/06 (Service)
Aula 05/06 (Service)
 
jQuery - Visão Geral
jQuery - Visão GeraljQuery - Visão Geral
jQuery - Visão Geral
 
Java script - funções
Java script - funçõesJava script - funções
Java script - funções
 
Java script aula 05 - funções
Java script   aula 05 - funçõesJava script   aula 05 - funções
Java script aula 05 - funções
 
#5 CRUD no MongoDB
#5   CRUD  no MongoDB#5   CRUD  no MongoDB
#5 CRUD no MongoDB
 
Java script aula 10 - angularjs
Java script   aula 10 - angularjsJava script   aula 10 - angularjs
Java script aula 10 - angularjs
 

Viewers also liked

Introducing with MongoDB
Introducing with MongoDBIntroducing with MongoDB
Introducing with MongoDBMahbub Tito
 
DAT203 Optimizing Your MongoDB Database on AWS - AWS re: Invent 2012
DAT203 Optimizing Your MongoDB Database on AWS - AWS re: Invent 2012DAT203 Optimizing Your MongoDB Database on AWS - AWS re: Invent 2012
DAT203 Optimizing Your MongoDB Database on AWS - AWS re: Invent 2012Amazon Web Services
 
MongoDB basics & Introduction
MongoDB basics & IntroductionMongoDB basics & Introduction
MongoDB basics & IntroductionJerwin Roy
 
The three aaS's of MongoDB in Windows Azure
The three aaS's of MongoDB in Windows AzureThe three aaS's of MongoDB in Windows Azure
The three aaS's of MongoDB in Windows AzureMongoDB
 
Mongo db basic installation
Mongo db basic installationMongo db basic installation
Mongo db basic installationKishor Parkhe
 
Mongo db program_installation_guide
Mongo db program_installation_guideMongo db program_installation_guide
Mongo db program_installation_guidePhilip Zhong
 
Building a REST API with Node.js and MongoDB
Building a REST API with Node.js and MongoDBBuilding a REST API with Node.js and MongoDB
Building a REST API with Node.js and MongoDBVivochaLabs
 
Securing Your Deployment with MongoDB and Red Hat's Identity Management in Re...
Securing Your Deployment with MongoDB and Red Hat's Identity Management in Re...Securing Your Deployment with MongoDB and Red Hat's Identity Management in Re...
Securing Your Deployment with MongoDB and Red Hat's Identity Management in Re...MongoDB
 

Viewers also liked (12)

MongoDB in Simple and Easy Steps
MongoDB in Simple and Easy StepsMongoDB in Simple and Easy Steps
MongoDB in Simple and Easy Steps
 
Introducing with MongoDB
Introducing with MongoDBIntroducing with MongoDB
Introducing with MongoDB
 
DAT203 Optimizing Your MongoDB Database on AWS - AWS re: Invent 2012
DAT203 Optimizing Your MongoDB Database on AWS - AWS re: Invent 2012DAT203 Optimizing Your MongoDB Database on AWS - AWS re: Invent 2012
DAT203 Optimizing Your MongoDB Database on AWS - AWS re: Invent 2012
 
MongoDB basics & Introduction
MongoDB basics & IntroductionMongoDB basics & Introduction
MongoDB basics & Introduction
 
The three aaS's of MongoDB in Windows Azure
The three aaS's of MongoDB in Windows AzureThe three aaS's of MongoDB in Windows Azure
The three aaS's of MongoDB in Windows Azure
 
Mongo db basic installation
Mongo db basic installationMongo db basic installation
Mongo db basic installation
 
Mongo db manual
Mongo db manualMongo db manual
Mongo db manual
 
Mongo db program_installation_guide
Mongo db program_installation_guideMongo db program_installation_guide
Mongo db program_installation_guide
 
Building a REST API with Node.js and MongoDB
Building a REST API with Node.js and MongoDBBuilding a REST API with Node.js and MongoDB
Building a REST API with Node.js and MongoDB
 
Tuning Linux for MongoDB
Tuning Linux for MongoDBTuning Linux for MongoDB
Tuning Linux for MongoDB
 
Securing Your Deployment with MongoDB and Red Hat's Identity Management in Re...
Securing Your Deployment with MongoDB and Red Hat's Identity Management in Re...Securing Your Deployment with MongoDB and Red Hat's Identity Management in Re...
Securing Your Deployment with MongoDB and Red Hat's Identity Management in Re...
 
Mongo DB
Mongo DBMongo DB
Mongo DB
 

Similar to MondoDB

Reduzindo o boilerplate code com Lombok
Reduzindo o boilerplate code com LombokReduzindo o boilerplate code com Lombok
Reduzindo o boilerplate code com LombokWellington Pinheiro
 
MongoDB - Tudo o que você precisa saber
MongoDB - Tudo o que você precisa saberMongoDB - Tudo o que você precisa saber
MongoDB - Tudo o que você precisa saberChristiano Anderson
 
Desenvolvendo aplicativos web com o google app engine
Desenvolvendo aplicativos web com o google app engineDesenvolvendo aplicativos web com o google app engine
Desenvolvendo aplicativos web com o google app enginepugpe
 
Minicurso Objective-C
Minicurso Objective-CMinicurso Objective-C
Minicurso Objective-CSaulo Arruda
 
MongoDB Schema Design - Latinoware 2014
MongoDB Schema Design - Latinoware 2014MongoDB Schema Design - Latinoware 2014
MongoDB Schema Design - Latinoware 2014Christiano Anderson
 
Introdução ao MongoDB
Introdução ao MongoDBIntrodução ao MongoDB
Introdução ao MongoDBRodrigo Hjort
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a TestesGregorio Melo
 
LPII_Aula_7-JQuery.pdf
LPII_Aula_7-JQuery.pdfLPII_Aula_7-JQuery.pdf
LPII_Aula_7-JQuery.pdfGabrielaMota46
 
Desvendando as ferramentas e serviços para o desenvolvedor Android
Desvendando as ferramentas e serviços para o desenvolvedor AndroidDesvendando as ferramentas e serviços para o desenvolvedor Android
Desvendando as ferramentas e serviços para o desenvolvedor Androidjoaobmonteiro
 
MongoDB - Tudo que você precisa saber - FGSL 2014
MongoDB - Tudo que você precisa saber - FGSL 2014MongoDB - Tudo que você precisa saber - FGSL 2014
MongoDB - Tudo que você precisa saber - FGSL 2014Christiano Anderson
 
Framework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da DissertacaoFramework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da DissertacaoMarcius Brandão
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkPablo Dall'Oglio
 
Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7Christiano Anderson
 
One Language to Rule Them All: TypeScript
One Language to Rule Them All: TypeScriptOne Language to Rule Them All: TypeScript
One Language to Rule Them All: TypeScriptLoiane Groner
 
Play Framework - FLISOL
Play Framework - FLISOLPlay Framework - FLISOL
Play Framework - FLISOLgrupoweblovers
 
Aplicações rápidas para a Web com Django
Aplicações rápidas para a Web com DjangoAplicações rápidas para a Web com Django
Aplicações rápidas para a Web com DjangoFreedom DayMS
 

Similar to MondoDB (20)

Programação Web com jQuery
Programação Web com jQueryProgramação Web com jQuery
Programação Web com jQuery
 
Aplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com DjangoAplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com Django
 
Reduzindo o boilerplate code com Lombok
Reduzindo o boilerplate code com LombokReduzindo o boilerplate code com Lombok
Reduzindo o boilerplate code com Lombok
 
MongoDB - Tudo o que você precisa saber
MongoDB - Tudo o que você precisa saberMongoDB - Tudo o que você precisa saber
MongoDB - Tudo o que você precisa saber
 
Desenvolvendo aplicativos web com o google app engine
Desenvolvendo aplicativos web com o google app engineDesenvolvendo aplicativos web com o google app engine
Desenvolvendo aplicativos web com o google app engine
 
TDC 2011 - Ext JS 4
TDC 2011 - Ext JS 4TDC 2011 - Ext JS 4
TDC 2011 - Ext JS 4
 
Minicurso Objective-C
Minicurso Objective-CMinicurso Objective-C
Minicurso Objective-C
 
Workshop Django
Workshop DjangoWorkshop Django
Workshop Django
 
MongoDB Schema Design - Latinoware 2014
MongoDB Schema Design - Latinoware 2014MongoDB Schema Design - Latinoware 2014
MongoDB Schema Design - Latinoware 2014
 
Introdução ao MongoDB
Introdução ao MongoDBIntrodução ao MongoDB
Introdução ao MongoDB
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a Testes
 
LPII_Aula_7-JQuery.pdf
LPII_Aula_7-JQuery.pdfLPII_Aula_7-JQuery.pdf
LPII_Aula_7-JQuery.pdf
 
Desvendando as ferramentas e serviços para o desenvolvedor Android
Desvendando as ferramentas e serviços para o desenvolvedor AndroidDesvendando as ferramentas e serviços para o desenvolvedor Android
Desvendando as ferramentas e serviços para o desenvolvedor Android
 
MongoDB - Tudo que você precisa saber - FGSL 2014
MongoDB - Tudo que você precisa saber - FGSL 2014MongoDB - Tudo que você precisa saber - FGSL 2014
MongoDB - Tudo que você precisa saber - FGSL 2014
 
Framework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da DissertacaoFramework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da Dissertacao
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um Framework
 
Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7
 
One Language to Rule Them All: TypeScript
One Language to Rule Them All: TypeScriptOne Language to Rule Them All: TypeScript
One Language to Rule Them All: TypeScript
 
Play Framework - FLISOL
Play Framework - FLISOLPlay Framework - FLISOL
Play Framework - FLISOL
 
Aplicações rápidas para a Web com Django
Aplicações rápidas para a Web com DjangoAplicações rápidas para a Web com Django
Aplicações rápidas para a Web com Django
 

MondoDB