44
Make Presentation much more fun MongoDB - Uso pra que? http://about.me/rogeriofontes Rogério Fontes

Mongodb praquer-usar-uaijugcloudday2014

Embed Size (px)

DESCRIPTION

Palestra feita no UaiJUG techDays 2014

Citation preview

Page 1: Mongodb praquer-usar-uaijugcloudday2014

Make Presentation much more fun

MongoDB - Uso pra que?

http://about.me/rogeriofontes Rogério Fontes

Page 2: Mongodb praquer-usar-uaijugcloudday2014

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 é?

Page 3: Mongodb praquer-usar-uaijugcloudday2014

Make Presentation much more fun

– Quem é?

@rogeriofontes

MongoDB – Uso pra que?

Qualquer lugar desde que planejado

Page 4: Mongodb praquer-usar-uaijugcloudday2014

Make Presentation much more fun

– Quem é?

@rogeriofontes

A palestra – Agenda

Essa palestra abordara conceitos, para quem quer iniciar nesse noSQL baseado em documentos:

•  Definições

•  Comparações

•  Onde usar e como usar o banco

•  Agradecimentos

Page 5: Mongodb praquer-usar-uaijugcloudday2014

Make Presentation much more fun

– Quem é?

@rogeriofontes

O Caminho

Bora trilhar – “lho” ?

Page 6: Mongodb praquer-usar-uaijugcloudday2014

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.

Page 7: Mongodb praquer-usar-uaijugcloudday2014

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).

Page 8: Mongodb praquer-usar-uaijugcloudday2014

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.

Page 9: Mongodb praquer-usar-uaijugcloudday2014

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)

Page 10: Mongodb praquer-usar-uaijugcloudday2014

Make Presentation much more fun

– Quem é?

@rogeriofontes

Ferramentas – Mais usadas

Database  Server   Client  Server Mongod mongo

Page 11: Mongodb praquer-usar-uaijugcloudday2014

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

Page 12: Mongodb praquer-usar-uaijugcloudday2014

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.

Page 13: Mongodb praquer-usar-uaijugcloudday2014

Make Presentation much more fun

– Quem é?

@rogeriofontes

O que o mongoDB é?

•  Escalavél

•  Com alta performace

•  Open-source

•  Orientado a documento

Page 14: Mongodb praquer-usar-uaijugcloudday2014

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.

Page 15: Mongodb praquer-usar-uaijugcloudday2014

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.

Page 16: Mongodb praquer-usar-uaijugcloudday2014

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.

Page 17: Mongodb praquer-usar-uaijugcloudday2014

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++

Page 18: Mongodb praquer-usar-uaijugcloudday2014

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

Page 19: Mongodb praquer-usar-uaijugcloudday2014

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

Page 20: Mongodb praquer-usar-uaijugcloudday2014

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

Page 21: Mongodb praquer-usar-uaijugcloudday2014

Make Presentation much more fun

– Quem é?

@rogeriofontes

Porque deveria usar mongoDB?

•  É Foda mano……….

Page 22: Mongodb praquer-usar-uaijugcloudday2014

Make Presentation much more fun

– Quem é?

@rogeriofontes

Quem Utiliza?

Dentre outros…

Page 23: Mongodb praquer-usar-uaijugcloudday2014

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

Page 24: Mongodb praquer-usar-uaijugcloudday2014

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.

Page 25: Mongodb praquer-usar-uaijugcloudday2014

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. :-)

Page 26: Mongodb praquer-usar-uaijugcloudday2014

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

Page 27: Mongodb praquer-usar-uaijugcloudday2014

Make Presentation much more fun

– Quem é?

@rogeriofontes

Principais comandos Listar database

•  Listar todas as bases dados existentes no MongoDB?

$ show dbs

Page 28: Mongodb praquer-usar-uaijugcloudday2014

Make Presentation much more fun

– Quem é?

@rogeriofontes

Principais comandos Acessar database

•  Como acessar uma base de dados no MongoDB? $ use suaBaseDeDados

Page 29: Mongodb praquer-usar-uaijugcloudday2014

Make Presentation much more fun

– Quem é?

@rogeriofontes

Principais comandos Verificar database

•  Como verificar em qual base de dados você esta no MongoDB?

$ db

Page 30: Mongodb praquer-usar-uaijugcloudday2014

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ê tera o seguinte retorno de sucesso: { "ok" : 1 }

Page 31: Mongodb praquer-usar-uaijugcloudday2014

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

Page 32: Mongodb praquer-usar-uaijugcloudday2014

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.

Page 33: Mongodb praquer-usar-uaijugcloudday2014

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 " }

Page 34: Mongodb praquer-usar-uaijugcloudday2014

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()

Page 35: Mongodb praquer-usar-uaijugcloudday2014

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 " }

Page 36: Mongodb praquer-usar-uaijugcloudday2014

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.

Page 37: Mongodb praquer-usar-uaijugcloudday2014

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()

Page 38: Mongodb praquer-usar-uaijugcloudday2014

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

Page 39: Mongodb praquer-usar-uaijugcloudday2014

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

Page 40: Mongodb praquer-usar-uaijugcloudday2014

Make Presentation much more fun

– Quem é?

@rogeriofontes

Principais comandos Deletar database

•  Como deletar (drop) uma base de dados no MongoDB?

$ db.dropDatabase()

Page 41: Mongodb praquer-usar-uaijugcloudday2014

Make Presentation much more fun

– Quem é?

@rogeriofontes

Relecionamento com Dev`s

•  http://planet.mongodb.org/

Page 42: Mongodb praquer-usar-uaijugcloudday2014

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

Page 43: Mongodb praquer-usar-uaijugcloudday2014

Make Presentation much more fun

– Quem é?

@rogeriofontes

Demo

Page 44: Mongodb praquer-usar-uaijugcloudday2014

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

}