SlideShare uma empresa Scribd logo
1 de 44
Baixar para ler offline
Make Presentation much more fun
MongoDB - Uso pra que?
http://about.me/rogeriofontes
Rogério Fontes
Make Presentation much more fun
– Quem é?
@rogeriofontes	
•  Apaixonado por desenvolvimento de código e formas ágeis de criá-los.
•  Fomentador e evangelista do Open-Source e Open-Hardware, com mais de 10
anos aventurando-se nessa área usando Java e suas tecnologias, android,
mongoDB dentre outros e agora apaixonado por AngularJS.
•  Co-fundador e Líder do UaiJUG (Grupo de Usuários do Triângulo Mineiro),
•  Co-fundador do Triângulo Hackerspace e,
•  Novo empreendedor, aventurando em sua nova Start-up (Não da grana
nenhuma ainda, só trampo por enquanto. ;) )
Rogério Fontes – Quem é?
Make Presentation much more fun
– Quem é?
@rogeriofontes	
MongoDB – Uso pra que?
Qualquer lugar desde que planejado
Make Presentation much more fun
– Quem é?
@rogeriofontes	
A palestra – Agenda
Essa palestra abordará conceitos, para quem quer
iniciar nesse noSQL baseado em documentos:
•  Definições
•  Comparações
•  Onde usar e como usar o banco
•  Agradecimentos
Make Presentation much more fun
– Quem é?
@rogeriofontes	
O Caminho
Bora trilhar – “lho” ?
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Definições – Database
•  Database é um container físico de coleções.
•  Cada database recebe o seu próprio conjunto de
arquivos no sistema operacional.
•  Um servidor simples de MongoDB, tem tipicamente
multiplos databases.
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Definições – Coleções
•  Coleção para o MongoDB é um grupo de
documentos.
•  Isto é equivalente a uma tabela de um banco
relacional.
•  A coleção existe dentro de um database simples.
•  Com coleções você não precisa de um esquema.
•  Documento dentro de uma coleção pode ter
diferentes campos.
•  Normalmente, todos os documentos em uma coleção
são de propósito semelhante ou similares (Ou seja,
tem algo relacionado).
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Definições – Documentos
•  Um documento nada mais é que um conjunto de par
chave-valor.
•  Documentos são esquemas dinâmicos.
•  Esquemas dinâmicos significa que documentos na
mesma coleção não precisa ter o mesmo conjunto de
campos ou estrutura e campos comuns.
•  Em documentos, uma coleção pode conter diferentes
tipos de dados.
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Comparação – mongoDB X RDBMs
RDBMS	
   MongoDB	
  
Database Database
Table Collection
Tuple/Row Document
column Field
Table Join Embedded Documents
Primary Key
Primary Key (Default key _id
provided by mongodb itself)
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Ferramentas – Mais usadas
Database	
  Server	
   Client	
  Server
Mongod mongo
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Json, bunitim! – todo mundo curti J
{ _id: ObjectId(7df78ad8902c)
Qtle: 'MongoDB Overview',
descripQon: 'MongoDB is no sql database', by: ’uaijug cloud day',
url: 'h:p://www.uaijug.com.br',
tags: ['mongodb', 'database', 'NoSQL'], likes: 100,
comments: [ {
user:'user1',
message: 'My first comment', dateCreated: new
Date(2011,1,20,2,15), like: 0
},
{ user:'user2',
message: 'My second comments', dateCreated: new
Date(2011,1,25,7,45), like: 5}
] }
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Bson, Que porra é essa?
•  Representa documentos JSON em formato binário
chamado BSON.
•  BSON Abstrai o modelo de JSON para fornecer tipos
de dados adicionais e para ser eficiente para
codificação e decodificação em diferentes
linguagens.
Make Presentation much more fun
– Quem é?
@rogeriofontes	
O que o mongoDB é?
•  Escalavél
•  Com alta performace
•  Open-source
•  Orientado a documento
Make Presentation much more fun
– Quem é?
@rogeriofontes	
O que o mongoDB é?
•  MongoDB's tem a estrutura de dados baseada na
flexibilidade, capacidade de Indexação, query data,
auto-sharding, isso torna o mongoDB uma
ferramenta forte que se adaptar bem as mudanças.
•  Isso ajuda a reduzir a complexidade dos banco
relacionais.
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Porque mongoDB?
•  MongoDB é multi-plataforma, orientado a
documento, alta performace, alta disponibilidade,
fácil de escalar.
•  MongoDB, trabalha com o conceito de coleção de
documento.
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Filosofia
•  Reduzir semântica transacional por performace
•  Bancos Não-relationais (noSQL) é a melhor maneira
de escalar horizontalmente.
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Características
•  O mongoDB é uma aplicação de código aberto
•  Contém uma alta performance , sem esquemas
•  Possui uma orientação a documentos
•  Foi escrito na linguagem C++
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Características
•  É formado por um conjunto de documentos JSON
•  Não utiliza transações nem joins.
•  Quando um aplicativo utiliza esse tipo de banco de
dados, o resultado que se tem são consultas simples
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Vantages do mongoDB sobre RDBMs
•  Não existe schema: MongoDB é uma base de dados
que suporta diferentes coleções e differences
documentos.
•  A estrutura de um documento simples é simples.
•  Não tem joins complexos.
•  Suporta query dinamicas usando document-based
query
•  Fácil de escalar
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Porque deveria usar mongoDB?
•  Documento Orientado Storage : Os dados são
guardados em um form, no esQlo de documentos
JSON usando Index em qualquer atributo.
•  Replicação & Alta Performace
•  Auto-Sharding
•  Rich Queries
•  Suporte professional pela MongoDB
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Porque deveria usar mongoDB?
•  É Foda mano……….
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Quem Utiliza?
Dentre
outros…
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Como instalar e utilizar?
•  Instalação do MongoDB no Windows
§  http://docs.mongodb.org/manual/tutorial/install-
mongodb-on-windows
•  Instalação do MongoDB no Linux
§  http://docs.mongodb.org/manual/administration/
install- on-linux
•  Instalação do MongoDB no Mac
§  http://docs.mongodb.org/manual/tutorial/install-
mongodb-on-os-x
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Principais comandos
Iniciar o DB
•  Abra o terminal e execute o seguinte comando:
$ mongod
• Obs: Se você fechar o terminal o serviço do MongoDB
vai cair, sendo assim, não feche, e abra um novo para
executar os próximos comandos.
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Principais comandos
Conectar ao DB
•  Para conectar no MongoDB, basta executar o comando
abaixo:
$ mongo
• Pronto! Estamos conectado no MongoDB. :-)
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Principais comandos
Criar database
•  O comando para criar uma nova base de dados é: use
nomeDaBaseDeDados.
•  Vamos, criar a base de dados do nosso cliente, a
•  Base de dados do site do UaiJUG:
•  $ use siteUaiJUG
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Principais comandos
Listar database
•  Listar todas as bases dados existentes no MongoDB?
$ show dbs
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Principais comandos
Acessar database
•  Como acessar uma base de dados no MongoDB?
$ use suaBaseDeDados
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Principais comandos
Verificar database
•  Como verificar em qual base de dados você esta no
MongoDB?
$ db
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Principais comandos
Criar uma coleção
•  Como criar uma estrutura de dados (collection) no
MongoDB?
$ db.createCollection(‘palestrante’)
•  Após a execução do médoto, você terá o seguinte
retorno de sucesso: { "ok" : 1 }
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Principais comandos
Listar todas coleções
•  Como listar todas as estruturas de dados
(collections) existentes na base de dados do
MongoDB?
$ show collections
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Principais comandos
Inserir na coleção
•  Comoinserir(insert)naestrutadedados(collec?on)no
MongoDB?
db.palestrante.insert({
name:‘Rogériofontes’,
twitter:‘@rogeriofontes’,
mensagem: ‘Inserindo palestrante no MongoDB’
})
•  Se a collecção não existe ela será recriada
automaticamente, sempre cuidado para não duplicar
dados.
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Principais comandos
Listar dados na coleção
•  Como visualizar os dados que estão dentro de uma
estrutura de dados (collection) no MongoDB?
•  $ db.palestrante.find()
O retorno não é muito agradável, ficando na seguinte
forma:
{"_id": ObjectId("21252b31e3b6e54896b6c8010113123f"),
"name" : " Rogério fontes ", " twitter " : "@rogeriofontes ",
"mensagem" : " Inserindo palestrante no MongoDB " }
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Principais comandos
Listar dados na coleção
•  Como visualizar os dados que estão dentro de uma
estrutura de dados (collection) no MongoDB?
•  Podemos adicionar o pretty(), o comando fica da
seguinte forma:
•  $db.palestrante.find().pretty()
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Principais comandos
Listar dados na coleção
•  E o retorno:
{
"_id" : ObjectId("21252b31e3b6e54896b6c8010113123f"),
"name" : " Rogério fontes ",
" twitter" : " @rogeriofontes ",
"mensagem" : " Inserindo palestrante no MongoDB "
}
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Principais comandos
Alterar dados na coleção
•  Como atualizar (update) os dados que estão dentro
de uma estrutura de dados (collection) do
MongoDB?
$ db.palestrante.update({name: ‘Rogério fontes’}, {$set:
{twi:er: ‘@pres’}})
•  O comando $set faz com que seja mantido todos os
dados, e alterado apenas os dados desejados.
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Principais comandos
Remover dados na coleção
•  Como remover (remove) os dados que estão dentro
de uma estrutura de dados (collection) no
MongoDB?
$ db.palestrante.remove({name: ‘Rogério Fontes’})
•  Para remover todos os dados da collection palestrante,
basta não passar nenhum parâmetro para o método:
$ db.contato.remove()
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Principais comandos
Deletar uma coleção
•  Como deletar (drop) uma estrutura de dados
(collection) no MongoDB?
$ db.contato.drop()
•  Retorna: true
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Principais comandos
Deletar uma coleção
•  Como deletar (drop) uma estrutura de dados
(collection) no MongoDB?
$ db.palestrante.drop()
•  Retorna: true
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Principais comandos
Deletar database
•  Como deletar (drop) uma base de dados no MongoDB?
$ db.dropDatabase()
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Relecionamento com Dev`s
•  http://planet.mongodb.org/
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Cursos Grátis
•  https://university.mongodb.com/
Cursos:
•  C100DBA: MongoDB Certified DBA Associate Exam
•  C100DEV: MongoDB Certified Developer Associate Exam
•  M101J: MongoDB for Java Developers (Coached)
•  M101J: MongoDB for Java Developers
•  M101JS: MongoDB for Node.js Developers
•  M101P: MongoDB for Developers
•  M102: MongoDB for DBAs
•  M202: MongoDB Advanced Deployment and Operations
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Demo
Make Presentation much more fun
– Quem é?
@rogeriofontes	
Obrigado
{
"Palestra": "MongoDB - Uso pra que? ",
"Evento":"UaiJUG cloudDay",
"redes sociais":[
{“twitter","@rogeriofontes "},
{“About-me","http://about.me/rogeriofontes"},
],
"messages":[
"Obrigado",
"thanks",
"Vlw”]
}

Mais conteúdo relacionado

Destaque

[Palestra] André Locatelli: Tipificação de carcaças e pagamento diferenciado:...
[Palestra] André Locatelli: Tipificação de carcaças e pagamento diferenciado:...[Palestra] André Locatelli: Tipificação de carcaças e pagamento diferenciado:...
[Palestra] André Locatelli: Tipificação de carcaças e pagamento diferenciado:...
AgroTalento
 
Cultivo protegido de uva aumenta produtividade em 100%
Cultivo protegido de uva aumenta produtividade em 100%Cultivo protegido de uva aumenta produtividade em 100%
Cultivo protegido de uva aumenta produtividade em 100%
Agricultura Sao Paulo
 
razas bovinas selectas para carne 1
razas bovinas selectas para carne 1razas bovinas selectas para carne 1
razas bovinas selectas para carne 1
Luis Miguel Gartner
 
Razas de bovinos para carne
Razas de bovinos para carneRazas de bovinos para carne
Razas de bovinos para carne
Sergio Treviño
 
Razas Bos Indicus y Bos taurus
Razas Bos Indicus y Bos taurusRazas Bos Indicus y Bos taurus
Razas Bos Indicus y Bos taurus
L Uribe
 
Historia de la topografia
Historia de la topografiaHistoria de la topografia
Historia de la topografia
eliarosa
 
Manual de topogafia
Manual de topogafiaManual de topogafia
Manual de topogafia
ivan232011
 

Destaque (20)

Tatielly
Tatielly Tatielly
Tatielly
 
[Palestra] André Locatelli: Tipificação de carcaças e pagamento diferenciado:...
[Palestra] André Locatelli: Tipificação de carcaças e pagamento diferenciado:...[Palestra] André Locatelli: Tipificação de carcaças e pagamento diferenciado:...
[Palestra] André Locatelli: Tipificação de carcaças e pagamento diferenciado:...
 
Proposição de uma Nova Vacina para Brucelose Bovina Usando uma Abordagem Biot...
Proposição de uma Nova Vacina para Brucelose Bovina Usando uma Abordagem Biot...Proposição de uma Nova Vacina para Brucelose Bovina Usando uma Abordagem Biot...
Proposição de uma Nova Vacina para Brucelose Bovina Usando uma Abordagem Biot...
 
Cultivo protegido de uva aumenta produtividade em 100%
Cultivo protegido de uva aumenta produtividade em 100%Cultivo protegido de uva aumenta produtividade em 100%
Cultivo protegido de uva aumenta produtividade em 100%
 
Query Store en SQL 2016
Query Store en SQL 2016Query Store en SQL 2016
Query Store en SQL 2016
 
Desenho tecnico e sua importância na engenharia agrícola e ambiental
Desenho tecnico e sua importância na engenharia agrícola e ambientalDesenho tecnico e sua importância na engenharia agrícola e ambiental
Desenho tecnico e sua importância na engenharia agrícola e ambiental
 
Manual de vacinação
Manual de vacinaçãoManual de vacinação
Manual de vacinação
 
Morfologiavegetalsementeraizcauleefolha 111108063906-phpapp01
Morfologiavegetalsementeraizcauleefolha 111108063906-phpapp01Morfologiavegetalsementeraizcauleefolha 111108063906-phpapp01
Morfologiavegetalsementeraizcauleefolha 111108063906-phpapp01
 
Tuberculose Bovina
Tuberculose BovinaTuberculose Bovina
Tuberculose Bovina
 
Boas práticas de manejo na Vacinação
Boas práticas de manejo na VacinaçãoBoas práticas de manejo na Vacinação
Boas práticas de manejo na Vacinação
 
razas bovinas selectas para carne 1
razas bovinas selectas para carne 1razas bovinas selectas para carne 1
razas bovinas selectas para carne 1
 
Razas de bovinos para carne
Razas de bovinos para carneRazas de bovinos para carne
Razas de bovinos para carne
 
Razas Bos Indicus y Bos taurus
Razas Bos Indicus y Bos taurusRazas Bos Indicus y Bos taurus
Razas Bos Indicus y Bos taurus
 
Historia de la topografia
Historia de la topografiaHistoria de la topografia
Historia de la topografia
 
Ganado bovino
 Ganado bovino Ganado bovino
Ganado bovino
 
Manual de topogafia
Manual de topogafiaManual de topogafia
Manual de topogafia
 
Glándula tiroides
Glándula tiroidesGlándula tiroides
Glándula tiroides
 
Anatomia do coração
Anatomia do coraçãoAnatomia do coração
Anatomia do coração
 
MANUAL DE PRACTICAS DE TOPOGRAFIA
MANUAL DE PRACTICAS DE TOPOGRAFIAMANUAL DE PRACTICAS DE TOPOGRAFIA
MANUAL DE PRACTICAS DE TOPOGRAFIA
 
Curso de topografia capeco docentes_
Curso de topografia capeco docentes_Curso de topografia capeco docentes_
Curso de topografia capeco docentes_
 

Semelhante a Mongodb praquer-usar-uaijugcloudday2014

Mais um comparativo MongoDB - Fernando Boaglio - abril.2014
Mais um comparativo MongoDB - Fernando Boaglio - abril.2014Mais um comparativo MongoDB - Fernando Boaglio - abril.2014
Mais um comparativo MongoDB - Fernando Boaglio - abril.2014
Fernando Boaglio
 

Semelhante a Mongodb praquer-usar-uaijugcloudday2014 (20)

Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7
 
Introdução ao NoSQL e modelagem de dados com MongoDB
Introdução ao NoSQL e modelagem de dados com MongoDBIntrodução ao NoSQL e modelagem de dados com MongoDB
Introdução ao NoSQL e modelagem de dados com MongoDB
 
#1 Introdução ao MongoDB
#1   Introdução ao MongoDB#1   Introdução ao MongoDB
#1 Introdução ao MongoDB
 
MongoDB no Microsoft Azure - DBA Brasil 2.0
MongoDB no Microsoft Azure - DBA Brasil 2.0MongoDB no Microsoft Azure - DBA Brasil 2.0
MongoDB no Microsoft Azure - DBA Brasil 2.0
 
Python e MongoDB - Ensol
Python e MongoDB - EnsolPython e MongoDB - Ensol
Python e MongoDB - Ensol
 
MongoDB na Campus Party
MongoDB na Campus PartyMongoDB na Campus Party
MongoDB na Campus Party
 
MongoDB com Java - SouJava
MongoDB com Java - SouJavaMongoDB com Java - SouJava
MongoDB com Java - SouJava
 
Mais um comparativo MongoDB - Fernando Boaglio - abril.2014
Mais um comparativo MongoDB - Fernando Boaglio - abril.2014Mais um comparativo MongoDB - Fernando Boaglio - abril.2014
Mais um comparativo MongoDB - Fernando Boaglio - abril.2014
 
NoSQL para Desenvolvedores .NET - SQLSaturday #804 - São Paulo
NoSQL para Desenvolvedores .NET - SQLSaturday #804 - São PauloNoSQL para Desenvolvedores .NET - SQLSaturday #804 - São Paulo
NoSQL para Desenvolvedores .NET - SQLSaturday #804 - São Paulo
 
NoSQL com Zend Framework 2
NoSQL com Zend Framework 2NoSQL com Zend Framework 2
NoSQL com Zend Framework 2
 
MongoDB e OpenShift - JUDCon2014
MongoDB e OpenShift - JUDCon2014MongoDB e OpenShift - JUDCon2014
MongoDB e OpenShift - JUDCon2014
 
MongoDB com Java - GUOB 2018
MongoDB com Java  - GUOB  2018MongoDB com Java  - GUOB  2018
MongoDB com Java - GUOB 2018
 
mongodb.pdf
mongodb.pdfmongodb.pdf
mongodb.pdf
 
Introdução a NoSQL com MongoDB e FireDAC
Introdução a NoSQL com MongoDB e FireDAC Introdução a NoSQL com MongoDB e FireDAC
Introdução a NoSQL com MongoDB e FireDAC
 
NoSQL, MongoDB e MEAN
NoSQL, MongoDB e MEANNoSQL, MongoDB e MEAN
NoSQL, MongoDB e MEAN
 
MongoDB
MongoDBMongoDB
MongoDB
 
Nao perca tempo com bancos de dados relacionais, use mongo db
Nao perca tempo com bancos de dados relacionais,   use mongo dbNao perca tempo com bancos de dados relacionais,   use mongo db
Nao perca tempo com bancos de dados relacionais, use mongo db
 
Introdução ao NoSql
Introdução ao NoSqlIntrodução ao NoSql
Introdução ao NoSql
 
Mongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopMongo Db - PHP Day Workshop
Mongo Db - PHP Day Workshop
 
Desenvolvendo soluções com banco de dados não relacional - MongoDB
Desenvolvendo soluções com banco de dados não relacional - MongoDBDesenvolvendo soluções com banco de dados não relacional - MongoDB
Desenvolvendo soluções com banco de dados não relacional - MongoDB
 

Mais de Rogerio Fontes (6)

Sobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaSobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis Uberlândia
 
Clean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everisClean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everis
 
Uaijug ADF - spring boot - microservice - Introdução
Uaijug ADF - spring boot - microservice - IntroduçãoUaijug ADF - spring boot - microservice - Introdução
Uaijug ADF - spring boot - microservice - Introdução
 
Apresentação wild fly-semrevisao
Apresentação wild fly-semrevisaoApresentação wild fly-semrevisao
Apresentação wild fly-semrevisao
 
Palestra urutai-mobile
Palestra urutai-mobilePalestra urutai-mobile
Palestra urutai-mobile
 
Empreender nointerior pressystem
Empreender nointerior pressystemEmpreender nointerior pressystem
Empreender nointerior pressystem
 

Mongodb praquer-usar-uaijugcloudday2014

  • 1. Make Presentation much more fun MongoDB - Uso pra que? http://about.me/rogeriofontes Rogério Fontes
  • 2. Make Presentation much more fun – Quem é? @rogeriofontes •  Apaixonado por desenvolvimento de código e formas ágeis de criá-los. •  Fomentador e evangelista do Open-Source e Open-Hardware, com mais de 10 anos aventurando-se nessa área usando Java e suas tecnologias, android, mongoDB dentre outros e agora apaixonado por AngularJS. •  Co-fundador e Líder do UaiJUG (Grupo de Usuários do Triângulo Mineiro), •  Co-fundador do Triângulo Hackerspace e, •  Novo empreendedor, aventurando em sua nova Start-up (Não da grana nenhuma ainda, só trampo por enquanto. ;) ) Rogério Fontes – Quem é?
  • 3. Make Presentation much more fun – Quem é? @rogeriofontes MongoDB – Uso pra que? Qualquer lugar desde que planejado
  • 4. Make Presentation much more fun – Quem é? @rogeriofontes A palestra – Agenda Essa palestra abordará conceitos, para quem quer iniciar nesse noSQL baseado em documentos: •  Definições •  Comparações •  Onde usar e como usar o banco •  Agradecimentos
  • 5. Make Presentation much more fun – Quem é? @rogeriofontes O Caminho Bora trilhar – “lho” ?
  • 6. Make Presentation much more fun – Quem é? @rogeriofontes Definições – Database •  Database é um container físico de coleções. •  Cada database recebe o seu próprio conjunto de arquivos no sistema operacional. •  Um servidor simples de MongoDB, tem tipicamente multiplos databases.
  • 7. Make Presentation much more fun – Quem é? @rogeriofontes Definições – Coleções •  Coleção para o MongoDB é um grupo de documentos. •  Isto é equivalente a uma tabela de um banco relacional. •  A coleção existe dentro de um database simples. •  Com coleções você não precisa de um esquema. •  Documento dentro de uma coleção pode ter diferentes campos. •  Normalmente, todos os documentos em uma coleção são de propósito semelhante ou similares (Ou seja, tem algo relacionado).
  • 8. Make Presentation much more fun – Quem é? @rogeriofontes Definições – Documentos •  Um documento nada mais é que um conjunto de par chave-valor. •  Documentos são esquemas dinâmicos. •  Esquemas dinâmicos significa que documentos na mesma coleção não precisa ter o mesmo conjunto de campos ou estrutura e campos comuns. •  Em documentos, uma coleção pode conter diferentes tipos de dados.
  • 9. Make Presentation much more fun – Quem é? @rogeriofontes Comparação – mongoDB X RDBMs RDBMS   MongoDB   Database Database Table Collection Tuple/Row Document column Field Table Join Embedded Documents Primary Key Primary Key (Default key _id provided by mongodb itself)
  • 10. Make Presentation much more fun – Quem é? @rogeriofontes Ferramentas – Mais usadas Database  Server   Client  Server Mongod mongo
  • 11. Make Presentation much more fun – Quem é? @rogeriofontes Json, bunitim! – todo mundo curti J { _id: ObjectId(7df78ad8902c) Qtle: 'MongoDB Overview', descripQon: 'MongoDB is no sql database', by: ’uaijug cloud day', url: 'h:p://www.uaijug.com.br', tags: ['mongodb', 'database', 'NoSQL'], likes: 100, comments: [ { user:'user1', message: 'My first comment', dateCreated: new Date(2011,1,20,2,15), like: 0 }, { user:'user2', message: 'My second comments', dateCreated: new Date(2011,1,25,7,45), like: 5} ] }
  • 12. Make Presentation much more fun – Quem é? @rogeriofontes Bson, Que porra é essa? •  Representa documentos JSON em formato binário chamado BSON. •  BSON Abstrai o modelo de JSON para fornecer tipos de dados adicionais e para ser eficiente para codificação e decodificação em diferentes linguagens.
  • 13. Make Presentation much more fun – Quem é? @rogeriofontes O que o mongoDB é? •  Escalavél •  Com alta performace •  Open-source •  Orientado a documento
  • 14. Make Presentation much more fun – Quem é? @rogeriofontes O que o mongoDB é? •  MongoDB's tem a estrutura de dados baseada na flexibilidade, capacidade de Indexação, query data, auto-sharding, isso torna o mongoDB uma ferramenta forte que se adaptar bem as mudanças. •  Isso ajuda a reduzir a complexidade dos banco relacionais.
  • 15. Make Presentation much more fun – Quem é? @rogeriofontes Porque mongoDB? •  MongoDB é multi-plataforma, orientado a documento, alta performace, alta disponibilidade, fácil de escalar. •  MongoDB, trabalha com o conceito de coleção de documento.
  • 16. Make Presentation much more fun – Quem é? @rogeriofontes Filosofia •  Reduzir semântica transacional por performace •  Bancos Não-relationais (noSQL) é a melhor maneira de escalar horizontalmente.
  • 17. Make Presentation much more fun – Quem é? @rogeriofontes Características •  O mongoDB é uma aplicação de código aberto •  Contém uma alta performance , sem esquemas •  Possui uma orientação a documentos •  Foi escrito na linguagem C++
  • 18. Make Presentation much more fun – Quem é? @rogeriofontes Características •  É formado por um conjunto de documentos JSON •  Não utiliza transações nem joins. •  Quando um aplicativo utiliza esse tipo de banco de dados, o resultado que se tem são consultas simples
  • 19. Make Presentation much more fun – Quem é? @rogeriofontes Vantages do mongoDB sobre RDBMs •  Não existe schema: MongoDB é uma base de dados que suporta diferentes coleções e differences documentos. •  A estrutura de um documento simples é simples. •  Não tem joins complexos. •  Suporta query dinamicas usando document-based query •  Fácil de escalar
  • 20. Make Presentation much more fun – Quem é? @rogeriofontes Porque deveria usar mongoDB? •  Documento Orientado Storage : Os dados são guardados em um form, no esQlo de documentos JSON usando Index em qualquer atributo. •  Replicação & Alta Performace •  Auto-Sharding •  Rich Queries •  Suporte professional pela MongoDB
  • 21. Make Presentation much more fun – Quem é? @rogeriofontes Porque deveria usar mongoDB? •  É Foda mano……….
  • 22. Make Presentation much more fun – Quem é? @rogeriofontes Quem Utiliza? Dentre outros…
  • 23. Make Presentation much more fun – Quem é? @rogeriofontes Como instalar e utilizar? •  Instalação do MongoDB no Windows §  http://docs.mongodb.org/manual/tutorial/install- mongodb-on-windows •  Instalação do MongoDB no Linux §  http://docs.mongodb.org/manual/administration/ install- on-linux •  Instalação do MongoDB no Mac §  http://docs.mongodb.org/manual/tutorial/install- mongodb-on-os-x
  • 24. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Iniciar o DB •  Abra o terminal e execute o seguinte comando: $ mongod • Obs: Se você fechar o terminal o serviço do MongoDB vai cair, sendo assim, não feche, e abra um novo para executar os próximos comandos.
  • 25. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Conectar ao DB •  Para conectar no MongoDB, basta executar o comando abaixo: $ mongo • Pronto! Estamos conectado no MongoDB. :-)
  • 26. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Criar database •  O comando para criar uma nova base de dados é: use nomeDaBaseDeDados. •  Vamos, criar a base de dados do nosso cliente, a •  Base de dados do site do UaiJUG: •  $ use siteUaiJUG
  • 27. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Listar database •  Listar todas as bases dados existentes no MongoDB? $ show dbs
  • 28. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Acessar database •  Como acessar uma base de dados no MongoDB? $ use suaBaseDeDados
  • 29. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Verificar database •  Como verificar em qual base de dados você esta no MongoDB? $ db
  • 30. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Criar uma coleção •  Como criar uma estrutura de dados (collection) no MongoDB? $ db.createCollection(‘palestrante’) •  Após a execução do médoto, você terá o seguinte retorno de sucesso: { "ok" : 1 }
  • 31. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Listar todas coleções •  Como listar todas as estruturas de dados (collections) existentes na base de dados do MongoDB? $ show collections
  • 32. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Inserir na coleção •  Comoinserir(insert)naestrutadedados(collec?on)no MongoDB? db.palestrante.insert({ name:‘Rogériofontes’, twitter:‘@rogeriofontes’, mensagem: ‘Inserindo palestrante no MongoDB’ }) •  Se a collecção não existe ela será recriada automaticamente, sempre cuidado para não duplicar dados.
  • 33. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Listar dados na coleção •  Como visualizar os dados que estão dentro de uma estrutura de dados (collection) no MongoDB? •  $ db.palestrante.find() O retorno não é muito agradável, ficando na seguinte forma: {"_id": ObjectId("21252b31e3b6e54896b6c8010113123f"), "name" : " Rogério fontes ", " twitter " : "@rogeriofontes ", "mensagem" : " Inserindo palestrante no MongoDB " }
  • 34. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Listar dados na coleção •  Como visualizar os dados que estão dentro de uma estrutura de dados (collection) no MongoDB? •  Podemos adicionar o pretty(), o comando fica da seguinte forma: •  $db.palestrante.find().pretty()
  • 35. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Listar dados na coleção •  E o retorno: { "_id" : ObjectId("21252b31e3b6e54896b6c8010113123f"), "name" : " Rogério fontes ", " twitter" : " @rogeriofontes ", "mensagem" : " Inserindo palestrante no MongoDB " }
  • 36. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Alterar dados na coleção •  Como atualizar (update) os dados que estão dentro de uma estrutura de dados (collection) do MongoDB? $ db.palestrante.update({name: ‘Rogério fontes’}, {$set: {twi:er: ‘@pres’}}) •  O comando $set faz com que seja mantido todos os dados, e alterado apenas os dados desejados.
  • 37. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Remover dados na coleção •  Como remover (remove) os dados que estão dentro de uma estrutura de dados (collection) no MongoDB? $ db.palestrante.remove({name: ‘Rogério Fontes’}) •  Para remover todos os dados da collection palestrante, basta não passar nenhum parâmetro para o método: $ db.contato.remove()
  • 38. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Deletar uma coleção •  Como deletar (drop) uma estrutura de dados (collection) no MongoDB? $ db.contato.drop() •  Retorna: true
  • 39. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Deletar uma coleção •  Como deletar (drop) uma estrutura de dados (collection) no MongoDB? $ db.palestrante.drop() •  Retorna: true
  • 40. Make Presentation much more fun – Quem é? @rogeriofontes Principais comandos Deletar database •  Como deletar (drop) uma base de dados no MongoDB? $ db.dropDatabase()
  • 41. Make Presentation much more fun – Quem é? @rogeriofontes Relecionamento com Dev`s •  http://planet.mongodb.org/
  • 42. Make Presentation much more fun – Quem é? @rogeriofontes Cursos Grátis •  https://university.mongodb.com/ Cursos: •  C100DBA: MongoDB Certified DBA Associate Exam •  C100DEV: MongoDB Certified Developer Associate Exam •  M101J: MongoDB for Java Developers (Coached) •  M101J: MongoDB for Java Developers •  M101JS: MongoDB for Node.js Developers •  M101P: MongoDB for Developers •  M102: MongoDB for DBAs •  M202: MongoDB Advanced Deployment and Operations
  • 43. Make Presentation much more fun – Quem é? @rogeriofontes Demo
  • 44. Make Presentation much more fun – Quem é? @rogeriofontes Obrigado { "Palestra": "MongoDB - Uso pra que? ", "Evento":"UaiJUG cloudDay", "redes sociais":[ {“twitter","@rogeriofontes "}, {“About-me","http://about.me/rogeriofontes"}, ], "messages":[ "Obrigado", "thanks", "Vlw”] }