SlideShare une entreprise Scribd logo
1  sur  16
Ramon Araújo
raraujo.jpa@gmail.com
Um pequeno overview no mundo liberal do mongo
MONGO! Whaaaat?
o Escalável
o Linguagem natural para o desenvolvedor
o Variedade em tipos de dados (ex: geométricos e geoespacial)
o Schemaless, flexível
o Não é relacional
o Legal
Definições
MONGO RDBMS
Database Database
Coleção Tabela
Documento Tupla
Chave (Key) Coluna
Index Index
Join Sub-documento (embedded)
ou Link
ACID. Cuma?
_id, a key da questão
Db.users.insert({
name:’Ramon’,
email:’raraujo.jpa@gmail.com’,
team:’Vasco da Gama’
});
Db.users.find();
{ "_id" :
ObjectId("55e8a1693b09283ed9971a8b"),
"name" : "Ramon",
"email" : "raraujo.jpa@gmail.com",
"team" : "Vasco da Gama" }
*Desculpe-me, pelo windows.
Alguns operadores
• $gt ($gte)
• $lt ($lte)
• $exists
• $type
• $or
• $and
• $in
• $regex
• $all
• $set
• $unset
• $push
• $pop
• $pull
• $pullAll
• $addToSet
Exercício
Uma loja de sapatos femininos resolveu fazer uma
promoção em que todas as clientes com os pés
maiores que 33 e menores que 37 ganhariam
inteiramente grátis um cupom de sorteio, que dava
direito ao sorteio de uma estadia na aprazível São
Lourenço, com tudo pago. Sabendo-se que o nome
da coleção é clientes e os campos nome e
tamanho_pe existem.
Faça uma consulta em que retorne apenas o nome
das felizardas clientes
Resposta
db.clientes.find({ tamanho_pe: { $gt: 33, $lt: 37}}, {_id: false, nome: true});
Exercício
Com o sucesso da promoção, a loja decidiu expandir o
número de felizardas, incluindo os extremos, ou seja,
as clientes que possuem pé número 33 e 37. Com os
mesmos dados já descritos, resolva.
Resposta
db.clientes.find({ tamanho_pe: { $gte: 33, $lte: 37}}, {_id: false, nome: true});
* O mesmo se aplica a textos
Exercício
Saiu no ‘Jornal Brasional’, todas as pessoas que
possuam Silva no nome terão direito a adicionar uma
semana de férias, porém para isso é necessário que o
cidadão possua um número de cpf. Sabendo-se que a
coleção é pessoas e os campos são: nome, cpf. Retorne
todos os registros cadastrados que satisfaçam o
proposto.
Resposta
db.pessoas.find({ nome: { $regex: ’Silva’ },
cpf:{ $exists: true }
});
Relacionamentos
Um para um: Monogamia
A entidade fraca vira sub-documento da entidade forte. O típico caso do
homem subjugado pela mulher.
Exceto:
- Quando o documento e o subdocumento, juntos ocuparem mais de 16
MB.
- Não existir entidade fraca. Exemplo: Software e Linguagem de
Programação (não achei exemplo melhor)
Relacionamentos
Um para muitos: O(a) Cafajeste
Nada como ter tudo sob o seu domínio, a indicação para esse tipo de
relacionamento é que o muitos se torne sub-documento do
documento principal.
Exceto:
- Quando a coleção de sub-documentos for muito extensa, nesses
casos é preferível linkar um documento no outro.
Relacionamentos
Muitos para muitos: O Poliamor
Ninguém é de ninguém e todos são de todos, nesses casos a sugestão é
que se use o link entre as duas coleções, afim de facilitar futuras
pesquisas e importante lembrar que there’s no ACID.
I’ll be back!

Contenu connexe

Similaire à PresMongoDB: Um pequeno overview no mundo liberal do mongo

NOSQL uma breve introdução
NOSQL uma breve introduçãoNOSQL uma breve introdução
NOSQL uma breve introduçãoWise Systems
 
Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7Christiano 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 saberChristiano Anderson
 
O básico sobre Web Semântica, JSON-LD e Linked Data
O básico sobre Web Semântica, JSON-LD e Linked DataO básico sobre Web Semântica, JSON-LD e Linked Data
O básico sobre Web Semântica, JSON-LD e Linked DataDiego Eis
 
MongoDB - Tudo o que você precisa saber - FISL16
MongoDB - Tudo o que você precisa saber - FISL16MongoDB - Tudo o que você precisa saber - FISL16
MongoDB - Tudo o que você precisa saber - FISL16Christiano Anderson
 
R e dados abertos, uma perfeita combinação
R e dados abertos, uma perfeita combinaçãoR e dados abertos, uma perfeita combinação
R e dados abertos, uma perfeita combinaçãoSillas Gonzaga
 
Primeiros passos com o Cassandra
 Primeiros passos com o Cassandra  Primeiros passos com o Cassandra
Primeiros passos com o Cassandra Otávio Santana
 

Similaire à PresMongoDB: Um pequeno overview no mundo liberal do mongo (12)

NOSQL uma breve introdução
NOSQL uma breve introduçãoNOSQL uma breve introdução
NOSQL uma breve introdução
 
Python e MongoDB - Ensol
Python e MongoDB - EnsolPython e MongoDB - Ensol
Python e MongoDB - Ensol
 
Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7
 
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
 
O básico sobre Web Semântica, JSON-LD e Linked Data
O básico sobre Web Semântica, JSON-LD e Linked DataO básico sobre Web Semântica, JSON-LD e Linked Data
O básico sobre Web Semântica, JSON-LD e Linked Data
 
MongoDB - Tudo o que você precisa saber - FISL16
MongoDB - Tudo o que você precisa saber - FISL16MongoDB - Tudo o que você precisa saber - FISL16
MongoDB - Tudo o que você precisa saber - FISL16
 
Palestra nosql
Palestra nosqlPalestra nosql
Palestra nosql
 
R e dados abertos, uma perfeita combinação
R e dados abertos, uma perfeita combinaçãoR e dados abertos, uma perfeita combinação
R e dados abertos, uma perfeita combinação
 
MongoDB na Campus Party
MongoDB na Campus PartyMongoDB na Campus Party
MongoDB na Campus Party
 
MongoDB + PHP
MongoDB + PHPMongoDB + PHP
MongoDB + PHP
 
Primeiros passos com o Cassandra
 Primeiros passos com o Cassandra  Primeiros passos com o Cassandra
Primeiros passos com o Cassandra
 

PresMongoDB: Um pequeno overview no mundo liberal do mongo

  • 1. Ramon Araújo raraujo.jpa@gmail.com Um pequeno overview no mundo liberal do mongo
  • 2. MONGO! Whaaaat? o Escalável o Linguagem natural para o desenvolvedor o Variedade em tipos de dados (ex: geométricos e geoespacial) o Schemaless, flexível o Não é relacional o Legal
  • 3. Definições MONGO RDBMS Database Database Coleção Tabela Documento Tupla Chave (Key) Coluna Index Index Join Sub-documento (embedded) ou Link
  • 5. _id, a key da questão Db.users.insert({ name:’Ramon’, email:’raraujo.jpa@gmail.com’, team:’Vasco da Gama’ }); Db.users.find(); { "_id" : ObjectId("55e8a1693b09283ed9971a8b"), "name" : "Ramon", "email" : "raraujo.jpa@gmail.com", "team" : "Vasco da Gama" } *Desculpe-me, pelo windows.
  • 6. Alguns operadores • $gt ($gte) • $lt ($lte) • $exists • $type • $or • $and • $in • $regex • $all • $set • $unset • $push • $pop • $pull • $pullAll • $addToSet
  • 7. Exercício Uma loja de sapatos femininos resolveu fazer uma promoção em que todas as clientes com os pés maiores que 33 e menores que 37 ganhariam inteiramente grátis um cupom de sorteio, que dava direito ao sorteio de uma estadia na aprazível São Lourenço, com tudo pago. Sabendo-se que o nome da coleção é clientes e os campos nome e tamanho_pe existem. Faça uma consulta em que retorne apenas o nome das felizardas clientes
  • 8. Resposta db.clientes.find({ tamanho_pe: { $gt: 33, $lt: 37}}, {_id: false, nome: true});
  • 9. Exercício Com o sucesso da promoção, a loja decidiu expandir o número de felizardas, incluindo os extremos, ou seja, as clientes que possuem pé número 33 e 37. Com os mesmos dados já descritos, resolva.
  • 10. Resposta db.clientes.find({ tamanho_pe: { $gte: 33, $lte: 37}}, {_id: false, nome: true}); * O mesmo se aplica a textos
  • 11. Exercício Saiu no ‘Jornal Brasional’, todas as pessoas que possuam Silva no nome terão direito a adicionar uma semana de férias, porém para isso é necessário que o cidadão possua um número de cpf. Sabendo-se que a coleção é pessoas e os campos são: nome, cpf. Retorne todos os registros cadastrados que satisfaçam o proposto.
  • 12. Resposta db.pessoas.find({ nome: { $regex: ’Silva’ }, cpf:{ $exists: true } });
  • 13. Relacionamentos Um para um: Monogamia A entidade fraca vira sub-documento da entidade forte. O típico caso do homem subjugado pela mulher. Exceto: - Quando o documento e o subdocumento, juntos ocuparem mais de 16 MB. - Não existir entidade fraca. Exemplo: Software e Linguagem de Programação (não achei exemplo melhor)
  • 14. Relacionamentos Um para muitos: O(a) Cafajeste Nada como ter tudo sob o seu domínio, a indicação para esse tipo de relacionamento é que o muitos se torne sub-documento do documento principal. Exceto: - Quando a coleção de sub-documentos for muito extensa, nesses casos é preferível linkar um documento no outro.
  • 15. Relacionamentos Muitos para muitos: O Poliamor Ninguém é de ninguém e todos são de todos, nesses casos a sugestão é que se use o link entre as duas coleções, afim de facilitar futuras pesquisas e importante lembrar que there’s no ACID.