SlideShare uma empresa Scribd logo
Isaac Garcia Jorge
Isaac Garcia Jorge 
“Estou feliz por eles terem colocado computação nas 
nuvens”
Problema! Crescimento exponencial de dados! 
Isaac Garcia Jorge
“Não somente SQL” 
Isaac Garcia Jorge
Movimento teve inicio no começo de 2009. 
“NoSQL é um movimento que promove soluções de armazenamento de dados não relacionais.” (PORCELLI, 
2011) 
Próxima geração de banco de dados abordando áreas como: não relacional, distribuído, open-source e 
escalabilidade horizontal. 
Isaac Garcia Jorge
Tipos: 
Isaac Garcia Jorge
Key/value (Chave/Valor): 
Esse é o tipo de banco de dados NoSql mais simples, o conceito dele é uma chave e um valor para esta 
Ele é o que aguenta mais carga de dados. 
Esses tipos de banco de dados são os que têm a maior escalabilidade. 
Isaac Garcia Jorge
Key/value (Chave/Valor): 
Isaac Garcia Jorge
Wide Colum Store (Big 
Table): 
Fortemente inspirados pelo BigTable do Google; 
Suporta várias linhas e colunas, além disso ele permite sublinhas e subcolunas; 
Suporta um grande numero de colunas dinamicas (linha acima); 
Schema-free; 
Isaac Garcia Jorge
Wide Colum Store (Big 
Table): 
Isaac Garcia Jorge
Graph Store(orientado a 
grafo): 
Modalidade de banco mais complexa; 
Estrutura baseada em grafos, nós, pontes e etc; 
Guardam objetos e não registros como nos outros NoSQL; 
A busca destes itens são feitas pela navegação destes objetos; 
Isaac Garcia Jorge
Graph Store(orientado a 
grafo): 
Isaac Garcia Jorge
Document Store (orientado a 
documento): 
Desenvolvido para guardar, gerenciar e manipular informações orientadas a documentos (também conhecido 
como data semi estruturada); 
Baseado em documentos XML ou JSON; 
Podem ser localizados pelo seu id único ou por qualquer registro que tenha no documento: 
Isaac Garcia Jorge
Isaac Garcia Jorge 
Document Store (orientado a 
documento):
Capacidade/Complexidade: 
Isaac Garcia Jorge
Isaac Garcia Jorge
Isaac Garcia Jorge
C++ 01010101010010 
10101010101100 
10101010101010 
10101010101010 
10101010101010 BSON 
Isaac Garcia Jorge
Mongosis 
Business Intelligence: 
Integration Services 
Isaac Garcia Jorge
_id 
ObjectId("507f1f77bcf86cd799439011") 
string 
número (int, double, float) 
… 
Só não pode ser tipo array [ ] 
Restrições: 
PS: ObjectId("507c7f79bcf86cd7994f6c0e").getTimestamp() = ISODate("2012-10-15T21:26:17Z") 
Isaac Garcia Jorge
Restrições: 
16 MB 
Isaac Garcia Jorge
Vamos praticar!
Instalação como serviço no Windows: 
1) Fazer download no site: http://www.mongodb.org/downloads 
2) Descompactar os arquivos (preferencialmente em c:) 
3) Abrir o CMD e digitar o comando >cd [caminho onde esta o MongoDB] 
4) Criar uma pasta data com as subpastas datadb e datalog com o comando 
a) >md datadb 
b) >md datalog 
5) Criar um arquivo de configuração com a extenção .config setando, no mínimo o caminho do banco e o 
caminho de log 
a) dbpath=c:datadb 
b) logpath=c:datalogmongolog.txt 
6) Iniciar o serviço com o comando >net start MongoDB 
7) Iniciar o serviço com o comando >mongo 
Isaac Garcia Jorge
DATABASE 
TABLE 
ROWS 
QUERY 
INDEX 
PARTITION 
DATABASE 
COLLECTION 
DOCUMENT 
JSON 
INDEX 
SHARD 
Isaac Garcia Jorge 
Terminologia:
Criação e uso de Base: 
CREATE DATABASE usuario; 
GO 
USE usuario; 
>use usuario; 
Isaac Garcia Jorge
Criação de tabela usuários e inserção: 
CREATE TABLE dbo.cetiUser{ 
id INT IDENTITY, 
nome VARCHAR(100), 
matricula int, 
idade int, 
dataCriacao DATETIME, 
cep VARCHAR(10), 
cidade VARCHAR(50), 
rua VARCHAR(150), 
numero INT, 
complemento VARCHAR(100)} 
INSERT INTO dbo.cetiUser 
VALUES('Isaac’, 2968,22, GETDATE(), 
'00000-000', 'RJ', 'Inoã', 123, 'casa 180') 
db.cetiUser.save({ 
"nome":"Isaac", 
"matricula":2968, 
"idade":22, 
"endereço" : { 
"cep":"00000- 
00", 
"cidade":"RJ", 
"rua":"Inoã", 
"numero":123, 
"complemento": "casa180" 
} 
}); 
Isaac Garcia Jorge
Alteração de tabela (documento) e inserção: 
Isaac Garcia Jorge 
db.cetiUser.save({ 
"nome":"Carla", 
"matricula":3000, 
"sexo":"F", 
"endereço" : { 
"cep":"10000- 
00", 
"cidade":"SP", 
"rua":"Cascalhos", 
"numero":62, 
"complemento": "apto: 10" 
} 
}); 
ALTER TABLE dbo.cetiUser 
ADD sexo char(1) 
INSERT INTO dbo.cetiUser 
VALUES('Carla’, 3000, 24, GETDATE(), 
'10000-000', 'SP', 'Cascalhos', 62, 
'apto: 10','F')
Consultas: 
SELECT * FROM usuario; 
SELECT * FROM usuario WHERE matricula = 2968; 
Consulta somente com os campos nome e sexo 
SELECT nome, sexo FROM usuario WHERE matricula = 2968; 
Consulta sem os campos id e apelido 
SELECT nome, dataCriacao, cep, cidade, rua, numero, complemento,FROM usuario WHERE matricula = 
2968; 
Isaac Garcia Jorge 
>db.cetiUser.find(); 
>db.cetiUser.find({matricula: 2968}); 
>db.cetiUser.find({matricula: 2968}); 
Consulta somente com os campos nome e sexo: 
>db.cetiUser.find({matricula: 2968},{ nome:1, matricula:1}); 
Consulta sem os campos id e apelido: 
>db.cetiUser.find({matricula: 2968},{ _id:0, apelido:0});
Consultas: 
Isaac Garcia Jorge 
SELECT * FROM usuario WHERE nome;LIKE (‘*isaac*’) 
>db.cetiUser.find({nome: /Isaac*/i}); 
>db.cetiUser.find({nome : { $regex : 'Isaac*'}});
Exclusão: 
Isaac Garcia Jorge 
Apaga toda a tabela: 
DELETE FROM usuario 
Apaga com condição: 
DELETE FROM usuario WHERE nome = ‘Isaac’ 
Apaga toda a tabela: 
>db.cetiUser.remove(); 
Apaga com condição: 
>db.cetiUser.remove({nome: "Carla"});
Operadores ($gt, $gte, $lt, $lte): 
Isaac Garcia Jorge 
SELECT * FROM usuario WHERE idade;> 22 
SELECT * FROM usuario WHERE idade;>= 22 
SELECT * FROM usuario WHERE idade;< 24 
SELECT * FROM usuario WHERE idade;<= 24 
>db.cetiUser.find({idade: {$gt: 22}}); 
>db.cetiUser.find({idade: {$gte: 22}}); 
>db.cetiUser.find({idade: {$lt: 24}}); 
>db.cetiUser.find({idade: {$lte: 24}});
Outros operadores: 
$all - retorna o objeto onde todos os valores foram encontrados 
$exists - retorna o objeto caso uma chave exista 
$or - retorna o objeto caso a cláusula OU for verdadeira 
$and - retorna o objeto caso a cláusula E for verdadeira 
$type - retorna o objeto caso a chave seja do tipo especificado para conferir a lista dos tipos e seus valores 
$ne (not equal) - retorna o objeto onde o valor não foi encontrado 
$in - retorna o objeto se o valor foi encontrado 
$nin (not in) - retorna o objeto se nenhum dos valores foi encontrado 
$nor (not or) - retorna o objeto caso a cláusula negação do OU for verdadeira 
$mod - retorna o objeto quando o módulo de um valor for encontrado 
Isaac Garcia Jorge
Consultas ordenadas: 
Isaac Garcia Jorge 
SELECT * FROM usuario WHERE nome;ASC 
SELECT * FROM usuario WHERE nome;DESC 
>db.cetiUser.find().sort({nome:1}); 
>db.cetiUser.find().sort({nome:-1});
Alteração: 
Isaac Garcia Jorge 
UPDATE cetiUser SET idade = 28 WHERE matricula = 2968 
SELECT * FROM usuario WHERE nome;DESC 
> usuario = db.cetiUser.findOne({matricula: 2968}); 
> usuario.idade = 28 
> db.cetiUser.save(usuario); 
====================================================== 
> db.cetiUser.update({matricula: 2968},{$set: {matricula: 2900}});
Criação de index: 
Isaac Garcia Jorge 
CREATE INDEX usuario_nome_index ON usuario (nome) 
> db.cetiUser.ensureIndex({nome:1}); 
> db.cetiUser.ensureIndex({nome:1,idade:1});
Importação de dados de arquivo externo: 
> mongoimport --db [nome do banco] --collection [nome da collection] --file [camino] 
Isaac Garcia Jorge
Executar script antes de alguma ação: 
> mongo [caminho do arquivo js] --shell 
Isaac Garcia Jorge
Isaac Garcia Jorge
Isaac Garcia Jorge
Franklin (velho) 
(edição das imagens) 
Isaac Garcia Jorge 
Agradecimentos: 
Mauricio Martins 
(Business Intelligence)

Mais conteúdo relacionado

Mais procurados

Curso php
Curso phpCurso php
Curso php
danielbojczuk
 
MySQL 5.7 - 
Tirando o Máximo Proveito
MySQL 5.7 - 
Tirando o Máximo ProveitoMySQL 5.7 - 
Tirando o Máximo Proveito
MySQL 5.7 - 
Tirando o Máximo Proveito
Gabriela Ferrara
 
Programando em python dicionarios
Programando em python   dicionariosProgramando em python   dicionarios
Programando em python dicionarios
samuelthiago
 
jQuery na Prática - Cauê Fajoli
jQuery na Prática - Cauê FajolijQuery na Prática - Cauê Fajoli
jQuery na Prática - Cauê Fajoli
Caue Fajoli
 
Aula 01 PHP+MySQL - LabMM4
Aula 01 PHP+MySQL - LabMM4Aula 01 PHP+MySQL - LabMM4
Aula 01 PHP+MySQL - LabMM4
Carlos Santos
 
LabMM4 (T16 - 12/13) - PHP + MySQL
LabMM4 (T16 - 12/13) - PHP + MySQLLabMM4 (T16 - 12/13) - PHP + MySQL
LabMM4 (T16 - 12/13) - PHP + MySQL
Carlos Santos
 
Apostila de ext js com php e postgresql v0.5
Apostila de ext js com php e postgresql v0.5Apostila de ext js com php e postgresql v0.5
Apostila de ext js com php e postgresql v0.5
Luciano Marwell
 
Persistência de Dados no SQLite com Room
Persistência de Dados no SQLite com RoomPersistência de Dados no SQLite com Room
Persistência de Dados no SQLite com Room
Nelson Glauber Leal
 
Object Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesObject Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simples
Otávio Calaça Xavier
 

Mais procurados (10)

Curso php
Curso phpCurso php
Curso php
 
2011 01-18 mongo-db
2011 01-18 mongo-db2011 01-18 mongo-db
2011 01-18 mongo-db
 
MySQL 5.7 - 
Tirando o Máximo Proveito
MySQL 5.7 - 
Tirando o Máximo ProveitoMySQL 5.7 - 
Tirando o Máximo Proveito
MySQL 5.7 - 
Tirando o Máximo Proveito
 
Programando em python dicionarios
Programando em python   dicionariosProgramando em python   dicionarios
Programando em python dicionarios
 
jQuery na Prática - Cauê Fajoli
jQuery na Prática - Cauê FajolijQuery na Prática - Cauê Fajoli
jQuery na Prática - Cauê Fajoli
 
Aula 01 PHP+MySQL - LabMM4
Aula 01 PHP+MySQL - LabMM4Aula 01 PHP+MySQL - LabMM4
Aula 01 PHP+MySQL - LabMM4
 
LabMM4 (T16 - 12/13) - PHP + MySQL
LabMM4 (T16 - 12/13) - PHP + MySQLLabMM4 (T16 - 12/13) - PHP + MySQL
LabMM4 (T16 - 12/13) - PHP + MySQL
 
Apostila de ext js com php e postgresql v0.5
Apostila de ext js com php e postgresql v0.5Apostila de ext js com php e postgresql v0.5
Apostila de ext js com php e postgresql v0.5
 
Persistência de Dados no SQLite com Room
Persistência de Dados no SQLite com RoomPersistência de Dados no SQLite com Room
Persistência de Dados no SQLite com Room
 
Object Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesObject Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simples
 

Destaque

Pagina web
Pagina webPagina web
Pagina web
Lili Torres
 
A fantástica porcelana de meissen
A fantástica porcelana de meissenA fantástica porcelana de meissen
A fantástica porcelana de meissen
LucasCLima
 
Fundamentos de derecho plantas juan carlos becerril cruz
Fundamentos de derecho plantas  juan carlos becerril cruzFundamentos de derecho plantas  juan carlos becerril cruz
Fundamentos de derecho plantas juan carlos becerril cruz
Juanca BC
 
Catalogo boligrafos 2015
Catalogo boligrafos 2015Catalogo boligrafos 2015
Catalogo boligrafos 2015
Dioa Alarcon
 
Presentación1
Presentación1Presentación1
Presentación1
llamasjohana
 
Bn noviembre11
Bn noviembre11Bn noviembre11
Bn noviembre11
Silvia Muñoz
 
Blended learning
Blended learningBlended learning
Blended learning
Universidad de Murcia
 
Logica matematica
Logica matematicaLogica matematica
Logica matematica
gerald0717
 
Music magazine Questionnaire
Music magazine QuestionnaireMusic magazine Questionnaire
Music magazine Questionnaire
bluebirdsyd
 
Dn12 u3 a29_lsr
Dn12 u3 a29_lsrDn12 u3 a29_lsr
Dn12 u3 a29_lsrrubi_lopez
 
Projeto com uso das ti cs
Projeto com uso das ti csProjeto com uso das ti cs
Projeto com uso das ti cs
ginifeliciano
 
Eu e pro
Eu e proEu e pro
Eu e pro
Jacira Afra
 
21 a 28 11-2014 actividades na
21 a 28 11-2014 actividades na21 a 28 11-2014 actividades na
21 a 28 11-2014 actividades na
Abílio Fidalgo
 
Bioincubadora 111111
Bioincubadora 111111Bioincubadora 111111
Bioincubadora 111111bcntalks
 
Metas
MetasMetas
Enfermedad moral en la salud publica
Enfermedad moral en la salud publicaEnfermedad moral en la salud publica
Enfermedad moral en la salud publica
Memo Muñoz
 
Hr 008 企管系進路圖
Hr 008 企管系進路圖Hr 008 企管系進路圖
Hr 008 企管系進路圖handbook
 

Destaque (20)

Pagina web
Pagina webPagina web
Pagina web
 
A fantástica porcelana de meissen
A fantástica porcelana de meissenA fantástica porcelana de meissen
A fantástica porcelana de meissen
 
Fundamentos de derecho plantas juan carlos becerril cruz
Fundamentos de derecho plantas  juan carlos becerril cruzFundamentos de derecho plantas  juan carlos becerril cruz
Fundamentos de derecho plantas juan carlos becerril cruz
 
Catalogo boligrafos 2015
Catalogo boligrafos 2015Catalogo boligrafos 2015
Catalogo boligrafos 2015
 
Presentación1
Presentación1Presentación1
Presentación1
 
Jestem Dani
Jestem DaniJestem Dani
Jestem Dani
 
Un tresjoliconteenvn
Un tresjoliconteenvnUn tresjoliconteenvn
Un tresjoliconteenvn
 
Bn noviembre11
Bn noviembre11Bn noviembre11
Bn noviembre11
 
Blended learning
Blended learningBlended learning
Blended learning
 
Logica matematica
Logica matematicaLogica matematica
Logica matematica
 
Music magazine Questionnaire
Music magazine QuestionnaireMusic magazine Questionnaire
Music magazine Questionnaire
 
Dn12 u3 a29_lsr
Dn12 u3 a29_lsrDn12 u3 a29_lsr
Dn12 u3 a29_lsr
 
Projeto com uso das ti cs
Projeto com uso das ti csProjeto com uso das ti cs
Projeto com uso das ti cs
 
Eu e pro
Eu e proEu e pro
Eu e pro
 
21 a 28 11-2014 actividades na
21 a 28 11-2014 actividades na21 a 28 11-2014 actividades na
21 a 28 11-2014 actividades na
 
Bioincubadora 111111
Bioincubadora 111111Bioincubadora 111111
Bioincubadora 111111
 
Metas
MetasMetas
Metas
 
test
testtest
test
 
Enfermedad moral en la salud publica
Enfermedad moral en la salud publicaEnfermedad moral en la salud publica
Enfermedad moral en la salud publica
 
Hr 008 企管系進路圖
Hr 008 企管系進路圖Hr 008 企管系進路圖
Hr 008 企管系進路圖
 

Semelhante a MongoDB

NoSQL e MongoDB
NoSQL e MongoDBNoSQL e MongoDB
NoSQL e MongoDB
Jefferson Queiroz
 
MongoDB: um banco de dados orientado a documento
MongoDB: um banco de dados orientado a documentoMongoDB: um banco de dados orientado a documento
MongoDB: um banco de dados orientado a documento
Julio Monteiro
 
MongoDB - Iniciando e Conhecendo
MongoDB - Iniciando e ConhecendoMongoDB - Iniciando e Conhecendo
MongoDB - Iniciando e Conhecendo
Edemilson Gonçalves
 
Dinamizando Sites Estáticos
Dinamizando Sites EstáticosDinamizando Sites Estáticos
Dinamizando Sites Estáticos
Tiago Albineli Motta
 
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
Dickson S. Guedes
 
MySQL + JSON da casamento sim!
MySQL + JSON da casamento sim!MySQL + JSON da casamento sim!
MySQL + JSON da casamento sim!
Diego Hellas
 
MongoDB - Workshop Buscapé
MongoDB - Workshop BuscapéMongoDB - Workshop Buscapé
MongoDB - Workshop Buscapé
Wagner Bonfiglio
 
MongoDB - Wagner Bonfiglio - Navegg
MongoDB - Wagner Bonfiglio - NaveggMongoDB - Wagner Bonfiglio - Navegg
MongoDB - Wagner Bonfiglio - Navegg
Felipe Guimarães
 
Meetup MUG-RS KingHost
Meetup MUG-RS KingHostMeetup MUG-RS KingHost
Meetup MUG-RS KingHost
Christiano Anderson
 
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
Christiano Anderson
 
Minicurso Introdução ao mongoDB SCTI
Minicurso Introdução ao mongoDB SCTIMinicurso Introdução ao mongoDB SCTI
Minicurso Introdução ao mongoDB SCTI
Bruna Pereira
 
JQuery
JQuery JQuery
Introdução ao JQuery e AJAX
Introdução ao JQuery e AJAXIntrodução ao JQuery e AJAX
Introdução ao JQuery e AJAX
Sérgio Souza Costa
 
Hands-on Workshop: Como configurar e utilizar uma estrutura MongoDB para Big ...
Hands-on Workshop: Como configurar e utilizar uma estrutura MongoDB para Big ...Hands-on Workshop: Como configurar e utilizar uma estrutura MongoDB para Big ...
Hands-on Workshop: Como configurar e utilizar uma estrutura MongoDB para Big ...
Big Data Week São Paulo
 
Mini-Curso de MongoDB
Mini-Curso de MongoDBMini-Curso de MongoDB
Mini-Curso de MongoDB
Brunno Gomes
 
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
Christiano Anderson
 
Aula android 02.pdf
Aula android 02.pdfAula android 02.pdf
Aula android 02.pdf
Carlos Cavalcanti
 
Mongodb workshop cinlug
Mongodb workshop cinlugMongodb workshop cinlug
Mongodb workshop cinlug
Daker Fernandes
 
Kotlin: conhecendo features de uma linguagem moderna
Kotlin: conhecendo features de uma linguagem modernaKotlin: conhecendo features de uma linguagem moderna
Kotlin: conhecendo features de uma linguagem moderna
Fabrício Rissetto
 
MySQL - Instalação e Alguns comandos de Banco de Dados
MySQL - Instalação e Alguns comandos de Banco de DadosMySQL - Instalação e Alguns comandos de Banco de Dados
MySQL - Instalação e Alguns comandos de Banco de Dados
Clayton de Almeida Souza
 

Semelhante a MongoDB (20)

NoSQL e MongoDB
NoSQL e MongoDBNoSQL e MongoDB
NoSQL e MongoDB
 
MongoDB: um banco de dados orientado a documento
MongoDB: um banco de dados orientado a documentoMongoDB: um banco de dados orientado a documento
MongoDB: um banco de dados orientado a documento
 
MongoDB - Iniciando e Conhecendo
MongoDB - Iniciando e ConhecendoMongoDB - Iniciando e Conhecendo
MongoDB - Iniciando e Conhecendo
 
Dinamizando Sites Estáticos
Dinamizando Sites EstáticosDinamizando Sites Estáticos
Dinamizando Sites Estáticos
 
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
 
MySQL + JSON da casamento sim!
MySQL + JSON da casamento sim!MySQL + JSON da casamento sim!
MySQL + JSON da casamento sim!
 
MongoDB - Workshop Buscapé
MongoDB - Workshop BuscapéMongoDB - Workshop Buscapé
MongoDB - Workshop Buscapé
 
MongoDB - Wagner Bonfiglio - Navegg
MongoDB - Wagner Bonfiglio - NaveggMongoDB - Wagner Bonfiglio - Navegg
MongoDB - Wagner Bonfiglio - Navegg
 
Meetup MUG-RS KingHost
Meetup MUG-RS KingHostMeetup MUG-RS KingHost
Meetup MUG-RS KingHost
 
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
 
Minicurso Introdução ao mongoDB SCTI
Minicurso Introdução ao mongoDB SCTIMinicurso Introdução ao mongoDB SCTI
Minicurso Introdução ao mongoDB SCTI
 
JQuery
JQuery JQuery
JQuery
 
Introdução ao JQuery e AJAX
Introdução ao JQuery e AJAXIntrodução ao JQuery e AJAX
Introdução ao JQuery e AJAX
 
Hands-on Workshop: Como configurar e utilizar uma estrutura MongoDB para Big ...
Hands-on Workshop: Como configurar e utilizar uma estrutura MongoDB para Big ...Hands-on Workshop: Como configurar e utilizar uma estrutura MongoDB para Big ...
Hands-on Workshop: Como configurar e utilizar uma estrutura MongoDB para Big ...
 
Mini-Curso de MongoDB
Mini-Curso de MongoDBMini-Curso de MongoDB
Mini-Curso de MongoDB
 
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
 
Aula android 02.pdf
Aula android 02.pdfAula android 02.pdf
Aula android 02.pdf
 
Mongodb workshop cinlug
Mongodb workshop cinlugMongodb workshop cinlug
Mongodb workshop cinlug
 
Kotlin: conhecendo features de uma linguagem moderna
Kotlin: conhecendo features de uma linguagem modernaKotlin: conhecendo features de uma linguagem moderna
Kotlin: conhecendo features de uma linguagem moderna
 
MySQL - Instalação e Alguns comandos de Banco de Dados
MySQL - Instalação e Alguns comandos de Banco de DadosMySQL - Instalação e Alguns comandos de Banco de Dados
MySQL - Instalação e Alguns comandos de Banco de Dados
 

Último

Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 

Último (8)

Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 

MongoDB

  • 2. Isaac Garcia Jorge “Estou feliz por eles terem colocado computação nas nuvens”
  • 3. Problema! Crescimento exponencial de dados! Isaac Garcia Jorge
  • 4.
  • 5. “Não somente SQL” Isaac Garcia Jorge
  • 6. Movimento teve inicio no começo de 2009. “NoSQL é um movimento que promove soluções de armazenamento de dados não relacionais.” (PORCELLI, 2011) Próxima geração de banco de dados abordando áreas como: não relacional, distribuído, open-source e escalabilidade horizontal. Isaac Garcia Jorge
  • 8. Key/value (Chave/Valor): Esse é o tipo de banco de dados NoSql mais simples, o conceito dele é uma chave e um valor para esta Ele é o que aguenta mais carga de dados. Esses tipos de banco de dados são os que têm a maior escalabilidade. Isaac Garcia Jorge
  • 10. Wide Colum Store (Big Table): Fortemente inspirados pelo BigTable do Google; Suporta várias linhas e colunas, além disso ele permite sublinhas e subcolunas; Suporta um grande numero de colunas dinamicas (linha acima); Schema-free; Isaac Garcia Jorge
  • 11. Wide Colum Store (Big Table): Isaac Garcia Jorge
  • 12. Graph Store(orientado a grafo): Modalidade de banco mais complexa; Estrutura baseada em grafos, nós, pontes e etc; Guardam objetos e não registros como nos outros NoSQL; A busca destes itens são feitas pela navegação destes objetos; Isaac Garcia Jorge
  • 13. Graph Store(orientado a grafo): Isaac Garcia Jorge
  • 14. Document Store (orientado a documento): Desenvolvido para guardar, gerenciar e manipular informações orientadas a documentos (também conhecido como data semi estruturada); Baseado em documentos XML ou JSON; Podem ser localizados pelo seu id único ou por qualquer registro que tenha no documento: Isaac Garcia Jorge
  • 15. Isaac Garcia Jorge Document Store (orientado a documento):
  • 19. C++ 01010101010010 10101010101100 10101010101010 10101010101010 10101010101010 BSON Isaac Garcia Jorge
  • 20. Mongosis Business Intelligence: Integration Services Isaac Garcia Jorge
  • 21. _id ObjectId("507f1f77bcf86cd799439011") string número (int, double, float) … Só não pode ser tipo array [ ] Restrições: PS: ObjectId("507c7f79bcf86cd7994f6c0e").getTimestamp() = ISODate("2012-10-15T21:26:17Z") Isaac Garcia Jorge
  • 22. Restrições: 16 MB Isaac Garcia Jorge
  • 24. Instalação como serviço no Windows: 1) Fazer download no site: http://www.mongodb.org/downloads 2) Descompactar os arquivos (preferencialmente em c:) 3) Abrir o CMD e digitar o comando >cd [caminho onde esta o MongoDB] 4) Criar uma pasta data com as subpastas datadb e datalog com o comando a) >md datadb b) >md datalog 5) Criar um arquivo de configuração com a extenção .config setando, no mínimo o caminho do banco e o caminho de log a) dbpath=c:datadb b) logpath=c:datalogmongolog.txt 6) Iniciar o serviço com o comando >net start MongoDB 7) Iniciar o serviço com o comando >mongo Isaac Garcia Jorge
  • 25. DATABASE TABLE ROWS QUERY INDEX PARTITION DATABASE COLLECTION DOCUMENT JSON INDEX SHARD Isaac Garcia Jorge Terminologia:
  • 26. Criação e uso de Base: CREATE DATABASE usuario; GO USE usuario; >use usuario; Isaac Garcia Jorge
  • 27. Criação de tabela usuários e inserção: CREATE TABLE dbo.cetiUser{ id INT IDENTITY, nome VARCHAR(100), matricula int, idade int, dataCriacao DATETIME, cep VARCHAR(10), cidade VARCHAR(50), rua VARCHAR(150), numero INT, complemento VARCHAR(100)} INSERT INTO dbo.cetiUser VALUES('Isaac’, 2968,22, GETDATE(), '00000-000', 'RJ', 'Inoã', 123, 'casa 180') db.cetiUser.save({ "nome":"Isaac", "matricula":2968, "idade":22, "endereço" : { "cep":"00000- 00", "cidade":"RJ", "rua":"Inoã", "numero":123, "complemento": "casa180" } }); Isaac Garcia Jorge
  • 28. Alteração de tabela (documento) e inserção: Isaac Garcia Jorge db.cetiUser.save({ "nome":"Carla", "matricula":3000, "sexo":"F", "endereço" : { "cep":"10000- 00", "cidade":"SP", "rua":"Cascalhos", "numero":62, "complemento": "apto: 10" } }); ALTER TABLE dbo.cetiUser ADD sexo char(1) INSERT INTO dbo.cetiUser VALUES('Carla’, 3000, 24, GETDATE(), '10000-000', 'SP', 'Cascalhos', 62, 'apto: 10','F')
  • 29. Consultas: SELECT * FROM usuario; SELECT * FROM usuario WHERE matricula = 2968; Consulta somente com os campos nome e sexo SELECT nome, sexo FROM usuario WHERE matricula = 2968; Consulta sem os campos id e apelido SELECT nome, dataCriacao, cep, cidade, rua, numero, complemento,FROM usuario WHERE matricula = 2968; Isaac Garcia Jorge >db.cetiUser.find(); >db.cetiUser.find({matricula: 2968}); >db.cetiUser.find({matricula: 2968}); Consulta somente com os campos nome e sexo: >db.cetiUser.find({matricula: 2968},{ nome:1, matricula:1}); Consulta sem os campos id e apelido: >db.cetiUser.find({matricula: 2968},{ _id:0, apelido:0});
  • 30. Consultas: Isaac Garcia Jorge SELECT * FROM usuario WHERE nome;LIKE (‘*isaac*’) >db.cetiUser.find({nome: /Isaac*/i}); >db.cetiUser.find({nome : { $regex : 'Isaac*'}});
  • 31. Exclusão: Isaac Garcia Jorge Apaga toda a tabela: DELETE FROM usuario Apaga com condição: DELETE FROM usuario WHERE nome = ‘Isaac’ Apaga toda a tabela: >db.cetiUser.remove(); Apaga com condição: >db.cetiUser.remove({nome: "Carla"});
  • 32. Operadores ($gt, $gte, $lt, $lte): Isaac Garcia Jorge SELECT * FROM usuario WHERE idade;> 22 SELECT * FROM usuario WHERE idade;>= 22 SELECT * FROM usuario WHERE idade;< 24 SELECT * FROM usuario WHERE idade;<= 24 >db.cetiUser.find({idade: {$gt: 22}}); >db.cetiUser.find({idade: {$gte: 22}}); >db.cetiUser.find({idade: {$lt: 24}}); >db.cetiUser.find({idade: {$lte: 24}});
  • 33. Outros operadores: $all - retorna o objeto onde todos os valores foram encontrados $exists - retorna o objeto caso uma chave exista $or - retorna o objeto caso a cláusula OU for verdadeira $and - retorna o objeto caso a cláusula E for verdadeira $type - retorna o objeto caso a chave seja do tipo especificado para conferir a lista dos tipos e seus valores $ne (not equal) - retorna o objeto onde o valor não foi encontrado $in - retorna o objeto se o valor foi encontrado $nin (not in) - retorna o objeto se nenhum dos valores foi encontrado $nor (not or) - retorna o objeto caso a cláusula negação do OU for verdadeira $mod - retorna o objeto quando o módulo de um valor for encontrado Isaac Garcia Jorge
  • 34. Consultas ordenadas: Isaac Garcia Jorge SELECT * FROM usuario WHERE nome;ASC SELECT * FROM usuario WHERE nome;DESC >db.cetiUser.find().sort({nome:1}); >db.cetiUser.find().sort({nome:-1});
  • 35. Alteração: Isaac Garcia Jorge UPDATE cetiUser SET idade = 28 WHERE matricula = 2968 SELECT * FROM usuario WHERE nome;DESC > usuario = db.cetiUser.findOne({matricula: 2968}); > usuario.idade = 28 > db.cetiUser.save(usuario); ====================================================== > db.cetiUser.update({matricula: 2968},{$set: {matricula: 2900}});
  • 36. Criação de index: Isaac Garcia Jorge CREATE INDEX usuario_nome_index ON usuario (nome) > db.cetiUser.ensureIndex({nome:1}); > db.cetiUser.ensureIndex({nome:1,idade:1});
  • 37. Importação de dados de arquivo externo: > mongoimport --db [nome do banco] --collection [nome da collection] --file [camino] Isaac Garcia Jorge
  • 38. Executar script antes de alguma ação: > mongo [caminho do arquivo js] --shell Isaac Garcia Jorge
  • 41. Franklin (velho) (edição das imagens) Isaac Garcia Jorge Agradecimentos: Mauricio Martins (Business Intelligence)