SlideShare uma empresa Scribd logo
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

PDF
Palestra nosql
KEY
Utilizando NoSQL no desenvolvimento de soluções inteligentes
PDF
PDF
Semex lança ai24 ferramenta de monitoramento de vacas e novilhas
PPT
Programação feicorte 2010
PDF
Projeto Centro-Oeste Competitivo
PDF
Diagnostico da Piscicultura de Mato Grosso
PPTX
Winicius mello
Palestra nosql
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Semex lança ai24 ferramenta de monitoramento de vacas e novilhas
Programação feicorte 2010
Projeto Centro-Oeste Competitivo
Diagnostico da Piscicultura de Mato Grosso
Winicius mello

Destaque (20)

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

Semelhante a Mongodb praquer-usar-uaijugcloudday2014 (20)

KEY
Django e MongoDB - Python Brasil 7
PPTX
Introdução ao NoSQL e modelagem de dados com MongoDB
PPTX
#1 Introdução ao MongoDB
PPT
MongoDB no Microsoft Azure - DBA Brasil 2.0
KEY
Python e MongoDB - Ensol
KEY
MongoDB na Campus Party
PDF
MongoDB com Java - SouJava
PDF
Mais um comparativo MongoDB - Fernando Boaglio - abril.2014
PPTX
NoSQL para Desenvolvedores .NET - SQLSaturday #804 - São Paulo
PDF
NoSQL com Zend Framework 2
PDF
MongoDB e OpenShift - JUDCon2014
PDF
MongoDB com Java - GUOB 2018
PDF
mongodb.pdf
PDF
NoSQL, MongoDB e MEAN
PDF
Nao perca tempo com bancos de dados relacionais, use mongo db
PDF
Introdução ao NoSql
PPT
Mongo Db - PHP Day Workshop
PPT
Desenvolvendo soluções com banco de dados não relacional - MongoDB
ODP
MongoDB - Tudo que você precisa saber - FGSL 2014
Django e MongoDB - Python Brasil 7
Introdução ao NoSQL e modelagem de dados com MongoDB
#1 Introdução ao MongoDB
MongoDB no Microsoft Azure - DBA Brasil 2.0
Python e MongoDB - Ensol
MongoDB na Campus Party
MongoDB com Java - SouJava
Mais um comparativo MongoDB - Fernando Boaglio - abril.2014
NoSQL para Desenvolvedores .NET - SQLSaturday #804 - São Paulo
NoSQL com Zend Framework 2
MongoDB e OpenShift - JUDCon2014
MongoDB com Java - GUOB 2018
mongodb.pdf
NoSQL, MongoDB e MEAN
Nao perca tempo com bancos de dados relacionais, use mongo db
Introdução ao NoSql
Mongo Db - PHP Day Workshop
Desenvolvendo soluções com banco de dados não relacional - MongoDB
MongoDB - Tudo que você precisa saber - FGSL 2014
Anúncio

Mais de Rogerio Fontes (7)

PDF
Apresentação - MultiCloud - DevFest Triangulo - 2024-v2.pdf
PPTX
Sobre TDD - Tech Friday da Everis Uberlândia
PPTX
Clean code @rogeriofontes-techfriday-everis
PPTX
Uaijug ADF - spring boot - microservice - Introdução
PDF
Apresentação wild fly-semrevisao
PDF
Palestra urutai-mobile
PPT
Empreender nointerior pressystem
Apresentação - MultiCloud - DevFest Triangulo - 2024-v2.pdf
Sobre TDD - Tech Friday da Everis Uberlândia
Clean code @rogeriofontes-techfriday-everis
Uaijug ADF - spring boot - microservice - Introdução
Apresentação wild fly-semrevisao
Palestra urutai-mobile
Empreender nointerior pressystem

Último (19)

PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PPTX
Aula 18 - Manipulacao De Arquivos python
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Custos e liquidação no SAP Transportation Management, TM130 Col18
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Aula 18 - Manipulacao De Arquivos python
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Aula04-Academia Heri- Tecnologia Geral 2025
COBITxITIL-Entenda as diferença em uso governança TI
Apple Pippin Uma breve introdução. - David Glotz
Processos na gestão de transportes, TM100 Col18
Gestão de transportes básica no SAP S/4HANA, S4611 Col20

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”] }