0% acharam este documento útil (0 voto)
1K visualizações50 páginas

Apostila mongoDB

O documento apresenta um roteiro sobre MongoDB, abordando: 1) sua participação no mercado, 2) conceitos iniciais como execução, coleções e documentos, 3) relacionamentos através da conversão de MER para modelo de documentos e 4) métodos avançados de consulta.

Enviado por

Renato Mendes
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
1K visualizações50 páginas

Apostila mongoDB

O documento apresenta um roteiro sobre MongoDB, abordando: 1) sua participação no mercado, 2) conceitos iniciais como execução, coleções e documentos, 3) relacionamentos através da conversão de MER para modelo de documentos e 4) métodos avançados de consulta.

Enviado por

Renato Mendes
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 50

{ "name": "Mongo", "type": "DB", "authors": [ "João Pedro Castro", "Cristina Ciferri" ] }

Roteiro

1 O MongoDB e sua participação no mercado;

2 Conceitos iniciais: execução, coleções, documentos e comandos básicos;

3 Relacionamentos: conversão de um MER para um modelo de documentos;

4 Métodos avançados de recuperação de informações no MongoDB.


Roteiro

1 O MongoDB e sua participação no mercado;

2 Conceitos iniciais: execução, coleções, documentos e comandos básicos;

3 Relacionamentos: conversão de um MER para um modelo de documentos;

4 Métodos avançados de recuperação de informações no MongoDB.


Introdução: O que é o MongoDB?
u O MongoDB é um SGBD NOSQL open-source e orientado a
documentos.
u Alguns de seus diferenciais são:
u Alto desempenho: documentos embutidos e índices atuando sobre
eles;
u Rica linguagem de consulta: permite operações CRUD, agregações
de dados, busca por texto e consultas geoespaciais;
u Alta disponibilidade: replica set;
u Escalabilidade horizontal: sharding.

{ "fonte": "https://docs.mongodb.com/manual/introduction/" }
O MongoDB é realmente utilizado?
u Com a popularidade e a consolidação da linguagem SQL
no mercado, este tipo de questionamento é comum.
u DB-ENGINES RANKING: ranking de popularidade dos SGBD
mais utilizados, atualizado mensalmente.
u Pode ser acessado em: https://db-engines.com/en/ranking;
u Considera uma série de critérios para obter uma pontuação capaz
de classificar os SGBD.

{ "fonte": "https://db-engines.com/en/ranking_definition" }
Critérios do DB-ENGINES
u Menções do SGBD em mecanismos de busca;
u Interesse geral no SGBD (Google Trends);
u Frequência de discussões técnicas sobre o SGBD (Stack
Overflow e DBA Stack Exchange);
u Número de ofertas de emprego relacionadas ao SGBD;
u Número de perfis em redes profissionais onde o SGBD é
mencionado (Linkedin e Upwork);
u Relevância em redes sociais (Twitter).

{ "fonte": "https://db-engines.com/en/ranking_definition" }
O Ranking do DB-ENGINES

{ "fonte": "https://db-engines.com/en/ranking" }
O MongoDB no Mercado

{ "fonte": "https://www.vagas.com.br/vagas/v1500721/programador-javascript-html-nodejs" }
O MongoDB no Mercado

{ "fonte": "https://www.vagas.com.br/vagas/v1510244/arquiteto-tecnico-scrum-master-sp" }
O MongoDB no Mercado

{ "fonte": "https://www.vagas.com.br/vagas/v1501921/consultor-especialista" }
O MongoDB no Mercado

{ "fonte": "http://www.catho.com.br/vagas/analista-desenvolvedor-magento/11659583/" }
O MongoDB no Mercado

{ "fonte": "http://www.catho.com.br/vagas/engenheiro-de-software/11769216/" }
Roteiro

1 O MongoDB e sua participação no mercado;

2 Conceitos iniciais: execução, coleções, documentos e comandos básicos;

3 Relacionamentos: conversão de um MER para um modelo de documentos;

4 Métodos avançados de recuperação de informações no MongoDB.


Executando o MongoDB
u O MongoDB possui versões para as plataformas MacOS,
Linux e Windows.
u Maiores detalhes sobre os procedimentos necessários para realizar
a instalação deste SGBD podem ser encontrados em:
https://docs.mongodb.com/manual/administration/install-
community/.
u Após instalado, é necessário rodar o servidor do SGBD,
localizado no executável mongod.
u Com o servidor rodando, o shell do MongoDB é acessado através do
executável mongo.
u No MacOS ou no Linux, basta digitar o nome dos executáveis no
terminal.
Criando um Banco de Dados
u O MongoDB abstrai diversos comandos DDL.
u Estruturas são criadas conforme estas se tornam necessárias.
u Para criar um banco de dados, basta você usar o comando
para acessar um banco que ainda não existe.
u Assim que um registro for inserido neste banco, ele será criado e
persistido automaticamente.

SQL

MONGO
Coleções e Documentos (Insert)
u Como em outros modelos orientado a documentos, o
MongoDB organiza os dados em coleções de documentos.
u Cada documento possui um atributo identificador (_id) e uma
quantidade qualquer de outros atributos.
u Não é necessário (Mas é possível) especificar o ID dos
documentos!
u Não é necessário especificar o tipo dos atributos!
u Documentos diferentes que fazem parte de uma mesma coleção
podem ter atributos diferentes!
Coleções e Documentos (Insert)
u Para criar uma coleção, basta inserir um documento
nela.
u Existem duas operações de inserção no MongoDB:
u Inserção de um único documento: insertOne.
u Recebe como parâmetro um único documento.
u Inserção de múltiplos documentos de uma só vez:
insertMany.
u Recebe como parâmetro um vetor de documentos.
Coleções e Documentos (Insert)

SQL
Coleções e Documentos (Insert)

MONGO
Coleções e Documentos (Select)
u O MongoDB possui dois métodos principais para retornar
informações de documentos.
u O método find() retorna um ponteiro para todos os documentos
que atendem aos critérios especificados.
u O método findOne() retorna um único documento que atende aos
critérios especificados.
u Caso exista mais de um documento atendendo aos critérios, o método
findOne() retorna apenas o primeiro.

MONGO

SQL
Coleções e Documentos (Select)
u Ambos os métodos find() e findOne() permitem
especificar, da mesma forma, critérios de seleção e
projeção para o resultado.

SQL Projeção Seleção

MONGO Seleção Projeção


Coleções e Documentos (Update)
u O MongoDB possui três métodos para atualização de dados
em um documento.
u Os médotos updateOne() e updateMany() localizam o
documento segundo os critérios especificados e fazem as
alterações descritas.
u Diferença: quantidade de documentos afetada.
u Enquanto o updateOne() afeta somente um documento que
atenda os critérios, o updateMany() afeta todos.
u O método replaceOne() localiza um único documento que
atenda aos critérios especificados e o substitui por um novo
documento.
u O atributo _id do documento permanece o mesmo.
Coleções e Documentos (Update)

SQL

Alteração

Seleção
Coleções e Documentos (Update)

Seleção
Alteração

Seleção Alteração

Seleção Alteração
MONGO
Coleções e Documentos (Delete)
u O MongoDB possui dois métodos para a remoção de
documentos.
u Os médotos deleteOne() e deleteMany() localizam o
documento segundo os critérios especificados e o
removem da base de dados.
u Diferença: quantidade de documentos afetada.
u Enquanto o deleteOne() afeta somente um documento que atenda
os critérios, o deleteMany() afeta todos.
Coleções e Documentos (Delete)

SQL Seleção

Seleção
MONGO
Seleção
Roteiro

1 O MongoDB e sua participação no mercado;

2 Conceitos iniciais: execução, coleções, documentos e comandos básicos;

3 Relacionamentos: conversão de um MER para um modelo de documentos;

4 Métodos avançados de recuperação de informações no MongoDB.


Relacionamentos no MongoDB
u O MongoDB não implementa integridade referencial e
nem operações de junção!
u Logo, não existe o conceito de chave estrangeira para
documentos.
u Existem duas maneiras de se expressar relacionamentos
entre documentos no MongoDB.
u Referências entre documentos: é possível guardar o _id de um
documento como um atributo em outro documento.
u Não é o mesmo que guardar uma chave estrangeira!
u Documentos embutidos: o MongoDB permite guardar um
documento inteiro como um atributo em um documento (Sub-
Documentos).
Modelo Entidade-Relacionamento

MODELO ENTIDADE-RELACIONAMENTO
Modelo Relacional

MODELO RELACIONAL
Modelo de Documentos (Referências)

MODELO DE DOCUMENTOS (REFERÊNCIAS)


MODELO DE DOCUMENTOS
(REFERÊNCIAS/EMBUTIDOS)
Modelo de Documentos (Embutidos)
Roteiro

1 O MongoDB e sua participação no mercado;

2 Conceitos iniciais: execução, coleções, documentos e comandos básicos;

3 Relacionamentos: conversão de um MER para um modelo de documentos;

4 Métodos avançados de recuperação de informações no MongoDB.


Consultas Complexas em MongoDB
u O MongoDB possui diversos métodos e operadores que
permitem a realização de consultas complexas em seus
dados.
u Estes serão apresentados por meio de consultas escritas para os
modelos de dados apresentados na seção anterior.
u Frameworks como Map-Reduce não serão abordados nesta
apresentação.
u As consultas apresentadas nesta seção foram retiradas de:
u CASTRO, João Pedro de Carvalho. Uma Análise de Técnicas de
Recuperação de Informações em um SGBD NoSQL. Monografia
(Bacharelado em Sistemas de Informação) – Universidade Federal
de Itajubá, Itajubá, 2015.
Consulta 1: Operador LIKE
u Consulta em SQL:

u Consulta no MongoDB (Modelo com Referências):

u Consulta no MongoDB (Modelo com Documentos Embutidos):


Consulta 2: Operador OR
u Consulta em SQL:

u Consulta no MongoDB (Modelo de Referências):

u Consulta no MongoDB (Modelo com Documentos Embutidos):


Consulta 3: Operador IN
u Consulta em SQL:

u Consulta no MongoDB (Modelo de Referências):

u Consulta no MongoDB (Modelo com Documentos Embutidos):


Consulta 4: Operadores >=/<=/!=
u Consulta em SQL:

u Consulta no MongoDB (Modelo de Referências):

u Consulta no MongoDB (Modelo com Documentos Embutidos):


Consulta 5: Operadores >=/<=/NOT IN
u Consulta em SQL:

u Consulta no MongoDB (Modelo de Referências):

u Consulta no MongoDB (Modelo com Documentos Embutidos):


Consulta 6: Função Agregada COUNT
u Consulta em SQL:

u Consulta no MongoDB (Modelo de Referências):

u Consulta no MongoDB (Modelo com Documentos Embutidos):


Consulta 7: Função Agregada AVG
u Consulta em SQL:

u Consulta no MongoDB (Modelo de Referências):


Consulta 7: Função Agregada AVG
u Consulta em SQL:

u Consulta no MongoDB (Modelo com Documentos Embutidos):


Consulta 8: Função Agregada SUM
u Consulta em SQL:

u Consulta no MongoDB (Modelo de Referências):


Consulta 8: Função Agregada SUM
u Consulta em SQL:

u Consulta no MongoDB (Modelo com Documentos Embutidos):


Consulta 9: Operação de Junção
u Consulta em SQL:

u Consulta no MongoDB (Modelo de Referências):


Consulta 9: Operação de Junção
u Consulta em SQL:

u Consulta no MongoDB (Modelo com Documentos Embutidos):


Consulta 10: …
u Consulta em SQL:
Consulta 10: …
u Consulta no MongoDB (Modelo de Referências):
Consulta 10: …
u Consulta no MongoDB (Modelo com Documentos Embutidos):
Consulta 10: Possível Solução
u Consulta no MongoDB (Modelo com Duplicatas, não mostrado na apresentação):

Você também pode gostar