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!

Mais conteúdo relacionado

ODP
Introdução websemantica (minicurso)
PDF
Estratégias pesquisa
PDF
PostgreSQL e FDW
PPT
Palestra MongoDB
PPTX
Sql vs NoSQL
ODP
MongoDB - Tudo que você precisa saber - FGSL 2014
ODP
MongoDB Schema Design - Latinoware 2014
PPTX
NOSQL_Uma_breve_introducao.pptx
Introdução websemantica (minicurso)
Estratégias pesquisa
PostgreSQL e FDW
Palestra MongoDB
Sql vs NoSQL
MongoDB - Tudo que você precisa saber - FGSL 2014
MongoDB Schema Design - Latinoware 2014
NOSQL_Uma_breve_introducao.pptx

Semelhante a PresMongoDB: Um pequeno overview no mundo liberal do mongo (12)

PPTX
NOSQL uma breve introdução
KEY
Python e MongoDB - Ensol
KEY
Django e MongoDB - Python Brasil 7
PDF
Meetup MUG-RS KingHost
ODP
MongoDB - Tudo o que você precisa saber
PDF
O básico sobre Web Semântica, JSON-LD e Linked Data
ODP
MongoDB - Tudo o que você precisa saber - FISL16
PDF
Palestra nosql
PPTX
R e dados abertos, uma perfeita combinação
KEY
MongoDB na Campus Party
PPTX
MongoDB + PHP
PDF
Primeiros passos com o Cassandra
NOSQL uma breve introdução
Python e MongoDB - Ensol
Django e MongoDB - Python Brasil 7
Meetup MUG-RS KingHost
MongoDB - Tudo o que você precisa saber
O básico sobre Web Semântica, JSON-LD e Linked Data
MongoDB - Tudo o que você precisa saber - FISL16
Palestra nosql
R e dados abertos, uma perfeita combinação
MongoDB na Campus Party
MongoDB + PHP
Primeiros passos com o Cassandra
Anúncio

Último (12)

PPT
03_slide de Gerenciamento de Projetos .ppt
PDF
SLIDES - AULA 7 - SWING - Cleyton Souza - IFPB
PDF
SLIDES - AULA 1 - APRESENTAÇÃO - Material de Cleyton Souza - IFPB
PDF
SLIDES - AULA 5 - HERANÇA - Material de Cleyton Souza - IFPB
PPT
09_Evolucao de software e_Refatoracao.ppt
PDF
SLIDES - AULA 2 - INTRODUÇÃO - Material de Cleyton Souza - IFPB
PPT
10_ slides de Reuso sommerville cap 10.ppt
PPT
05_slide especificacao de sistemas de software e a uml UML.ppt
PPT
00_Apresentacao sobre o livro do sommerville_ES.ppt
PPT
06_slide de Arquitetura_de_Software .ppt
PDF
SLIDES - AULA 3 - CLASSES E OBJETOS EM JAVA - Material de Cleyton Souza - IFPB
PPT
07_slides de Estilos_Arquiteturais sommerville.ppt
03_slide de Gerenciamento de Projetos .ppt
SLIDES - AULA 7 - SWING - Cleyton Souza - IFPB
SLIDES - AULA 1 - APRESENTAÇÃO - Material de Cleyton Souza - IFPB
SLIDES - AULA 5 - HERANÇA - Material de Cleyton Souza - IFPB
09_Evolucao de software e_Refatoracao.ppt
SLIDES - AULA 2 - INTRODUÇÃO - Material de Cleyton Souza - IFPB
10_ slides de Reuso sommerville cap 10.ppt
05_slide especificacao de sistemas de software e a uml UML.ppt
00_Apresentacao sobre o livro do sommerville_ES.ppt
06_slide de Arquitetura_de_Software .ppt
SLIDES - AULA 3 - CLASSES E OBJETOS EM JAVA - Material de Cleyton Souza - IFPB
07_slides de Estilos_Arquiteturais sommerville.ppt
Anúncio

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.