2. Agenda
• O que é um Banco de Dados
• O que é NOSQL
• Surgimento do NOSQL
• Tipos de NOSQL
• O que é o MongoDB
• Introdução ao MongoDB
• Usando MongoDB com JAVA
4. O que é um Banco de Dados
È um conjunto de dados inter-relacionados
5. O que é NOSQL
• São banco de dados não relacionais onde NOSQL significa
“Not Only SQL”
6. Surgimento do NOSQL
• Motivo
• Teorema CAP (Consistência, Disponibilidade e Tolerância a
Partição)
7.
8. Tipos de NOSQL
• Orientado a documento
• Chave-valor
• Orientado a grafo
• Orientado a colunas
9. O que é o MongoDB
MongoDB é uma solução escalavel de alto desempenho escrito
em c++, de código aberto de banco de dados NOSQL.
10. Características do MongoDB
• Orientado a documentos
• Suporte a índice completo
• Replicação e alta disponibilidade
• Sharding
11. Principais operadores
MongoDB
• $lt – menor que
• $gt – maior que
• $lte – menor ou igual a
• $gte – maior ou igual a
• $ne – diferente de
• $in – está em (recebe uma lista)
• $nin – não está em
• $mod – resto igual a (recebe uma lista onde o primeiro valor é
o divisor e o segundo o resto)
• $exists – contém ou não o atributo
• $not – negação de uma condição
12. Principais Consultas do
MongoDB
SQL MongoDB
CREATE TABLE USERS (a Number, b db.createCollection("mycoll")
Number)
INSERT INTO USERS VALUES(3,5) db.users.insert({a:3,b:5})
SELECT a,b FROM users db.users.find({}, {a:1,b:1})
SELECT a,b FROM users WHERE age=33 db.users.find({age:33}, {a:1,b:1})
SELECT * FROM users WHERE age=33 db.users.find({age:33}).sort({name:1})
ORDER BY name
SELECT * FROM users WHERE age>33 db.users.find({age:{$gt:33}})
SELECT * FROM users WHERE age!=33 db.users.find({age:{$ne:33}})
SELECT * FROM users WHERE name db.users.find({name:/Joe/})
LIKE "%Joe%"
SELECT * FROM users WHERE a=1 and db.users.find({a:1,b:'q'})
b='q'
13. Continuação das Consultas
SQL MongoDB
SELECT * FROM users WHERE a=1 or db.users.find( { $or : [ { a : 1 } , { b : 2 } ]
b=2 })
SELECT DISTINCT last_name FROM db.users.distinct('last_name')
users
SELECT COUNT(*y) FROM users db.users.count()
UPDATE users SET a=1 WHERE b='q' db.users.update({b:'q'}, {$set:{a:1}},
false, true)
UPDATE users SET a=a+2 WHERE b='q' db.users.update({b:'q'}, {$inc:{a:2}},
false, true)
DELETE FROM users WHERE z="abc" db.users.remove({z:'abc'});