SlideShare uma empresa Scribd logo
Mongo db
AGENDA
• NoSQL
• MongoDB
• Mongo shell
• Data Modeling
• CRUD Operations
• Logical Operations
• Links Úteis
• Prática
NOSQL
• Termo utilizado pela primeira vez em 1998 (noREL)
• São diferentes sistemas de armazenamento que vieram para
suprir a necessidade em demandas onde os bancos
relacionais são ineficazes.
NOSQL
• Com a crescente
popularização da internet,
diversos novos dados foram
surgindo e tratá-los foi se
tornando gradualmente mais
complexo e sua manutenção
mais cara
NOSQL
• Motivadores
Alta performance
Escalabilidade (Horizontal vs Vertical)
Tolerância a falha
Schemaless
Em sua maioria open-source
NOSQL
• Tipos de bases de dados NoSQL
• Column
Inspirados pelo BigTable, da Google, suportam varias linhas e colunas, além de
permitir subcolunas.
Ex:
Accumulo, Cassandra, BigTable, HBase, Cassandra
• Document
Baseados em documentos XML ou JSON, podem ser localizados pelo seu id
único ou por qualquer registro que o documento possua.
Ex:
Lotus Notes, CouchDB, Couchbase, MongoDB, OrientDB
NOSQL
• Tipos de bases de dados NoSQL
• Key-value
Tipo de banco de dados mais simples, conceito de uma chave e um valor para essa chave. Mas é
o que mais suporta carga de dados e possuem também maior escalabilidade.
Ex:
Dynamo, MemcacheDB, Redis, Riak
• Graph
Com complexidade maior, esses bancos de dados guardam objetos, e não
registros como os outros tipos de NoSQL. A busca desses itens é feita pela navegação
desses objetos.
Ex:
Allegro, Neo4J, InfiniteGraph
• Multi-model
• OrientDB, FoundationDB, ArangoDB, Alchemy Database, CortexDB
MONGODB
• Humongous Database
• Alta performance
• Alta disponibilidade
• Schemaless
• Distribuído
• Baseada em documentos JSON
• Open-Source
PARA QUE USAR O
MONGODB
• Conjunto de dados diversificado, misturado
• Concorrência massiva
• Alta incerteza no dimensionamento
• Sem tolerância a downtime
• Necessidade rápido de escalonamento
• Respostas rápidas
• Grande volume de dados
• Indecisão quanto ao schema
• Necessidade de slicing
• Falta de previsão quanto ao tamanho da base
O QUE NÃO É O MONGODB
• Uma suíte de Análise
• Uma ferramenta de BI
• Uma ferramenta de busca
QUEM UTILIZA
• Foursquare
• GitHub
• EasyTaxi
• Globo.com
• IG.com
• bit.ly
• Locaweb
• Oi
NO QUE O MONGODB NÃO
É MUITO BOM
• Gerenciamento de recursos de hardware
• Não é uma feature do mongoDB configurar quantidade de RAM, nº de CPUs, ou
operações de I/O para um usuário.
• Joins entre collections e transações entre
documentos
• Controlado no nível da aplicação. Um bom design do schema reduz sua necessidade.
• SQL
• O mongoDB não fala essa língua
DATA MODELING
• Armazena Documentos no formato
BSON
• Agrupa documentos em Collections
• Esquema flexível
DATA MODELING
• Estrutura do documento
• Embedded
• Modelo de dados “desnormalizado”
• Armazena dados relacionados em
um mesmo registro
• Somente uma consulta para toda
informação
• Recomendado para:
• Quando existe uma relação de “contém” entre entidades
• Quando existe uma relação de one-to-many e o lado many sempre é visualizado em conjunto com
seus documentos pais
DATA MODELING
• Estrutura do documento
• Referencies
• Modelo de dados normalizado
• Mais flexível que embedded
• Mais queries para buscar relações
• Recomendado para:
• Quando embedding duplicaria dados mas não proveria
vantagens no desempenho de read que justificasse seu uso
• Para representar relações de many-to-many mais complexas
• Para modelar grandes conjuntos de dados hierárquicos
DATA MODELING
• Atomicidade
• Garantir que qualquer transação seja “tudo ou nada”
• mongoDB somente garante atomicidade no nível de um documento
• mongoDB não implementa transação entre documentos ou collections
DATA MODELING
• GridFS
• Especificação para armazenar e recuperar arquivos que excedem o tamanho de um
documento (16MB)
• Divide o arquivo em pedaços (chunks) e as armazenam em documentos separados,
mantendo uma collection com meta dados dos arquivos
• Recomendações de uso
• Arquivo for maior que o tamanho de um documento
• Necessidade de acessar parte de arquivos ao invés do arquivo todo
CRUD OPERATIONS
• Operações de Create, Read, Update e Delete
• Cada operação afeta somente uma collection por vez
CRUD OPERATIONS
• Insert
db.collection.insert(
<document or array of
documents>,
{
writeConcern:
<document>,
ordered: <boolean>
}
)
CRUD OPERATIONS
• Update
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
CRUD OPERATIONS
• Delete
db.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern:
<document>
}
)
CRUD OPERATIONS
• Retrieve
db.collection.find(<crite
ria>, <projection>)
OPERADORES LÓGICOS
MONGO
$lt (menor que)
$lte (menor ou igual que)
$gt (maior que)
$gte (maior ou igual que)
$all (corresponder a todos os valores em um array)
$exists (verificar se um campo existe ou não)
$mod (módulo)
$ne (não igual)
OPERADORES LÓGICOS
MONGO
$in (corresponder a um ou mais valores em um array)
$nin (corresponder a valores zero em um array)
$or (corresponder uma consulta a outra)
$and (corresponder a todas as consultas)
$nor (não corresponder uma consulta nem outra)
$size (corresponder qualquer array com número definido de
elementos)
$type (corresponder valores com tipo de dados BSON especificado)
$not (não igual a)
COMANDOS MONGO
• db.collection.count()
retorna a quantidade de registros de uma coleção
• db.collection.distinct({key})
retorna uma consulta distinta contendo todos os valores da chave
informada
• db.getCollectionNames()
retorna todos os nomes das coleções
• show dbs
lista todas as bases de dados
• use <data_base>
conecta a uma base de dados
COMANDOS MONGO
• db
exibe o nome da base de dados a qual está conectado
• show collections
exibe todas as coleções
• db.collection.drop()
deleta uma collection
• db.dropDatabase()
deleta uma base de dados
• db.collection.selectOne()
JSON (JAVASCRIPT
OBJECT NOTATION)
JSON (JAVASCRIPT
OBJECT NOTATION)
INICIALIZANDO
• Processo mongod
• Pasta data
• Arquivo de configuração
MONGOSHELL
• Processo mongo
• Shell interativo JavaScript
• Autocompletion
ROBOMONGO
• Autocompletion
• Space ignore
• GUI Manipulation
VAMOS PRATICAR!
LINKS ÚTEIS
• https://www.mongodb.org
• https://docs.mongodb.org/manual/
• http://nosql-database.org
• https://bitbucket.org/edmilsonneto/minicurso-
mongodb
• http://www.json.org

Mais conteúdo relacionado

PDF
Mongo db slides
PPTX
Introdução no sql mongodb java
PDF
Lições Aprendidas MongoDB
PDF
MongoDB e Bancos de Dados Orientados a Documentos
PDF
Mais um comparativo MongoDB - Fernando Boaglio - abril.2014
PDF
No sql e as vantagens na utilização do mongodb
PPTX
Desenvolvimento de aplicações PHP com MongoDB
PPTX
Como o elasticsearch salvou minhas buscas
Mongo db slides
Introdução no sql mongodb java
Lições Aprendidas MongoDB
MongoDB e Bancos de Dados Orientados a Documentos
Mais um comparativo MongoDB - Fernando Boaglio - abril.2014
No sql e as vantagens na utilização do mongodb
Desenvolvimento de aplicações PHP com MongoDB
Como o elasticsearch salvou minhas buscas

Mais procurados (20)

PDF
Introdução ao NoSql
ODP
MongoDB - Tudo o que você precisa saber
KEY
MongoDB - Apresentação
PDF
Curso mongo db com php
PPTX
DocumentDB - Azure Fridays São Paulo
PDF
Mongo DB
ODP
BigData - ElasticSearch + PHP
PDF
Bancos de dados nosql (not only sql)
PDF
Minicurso Epoca mongoDB
PPT
Modelando aplicação em documento - MongoDB
PPTX
#5 CRUD no MongoDB
PDF
Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...
PPTX
Spring Data com MongoDB
PPTX
Nosql e BD Orientados a Documentos
PPTX
Treinamento Elasticsearch - Parte 2
PPTX
NOSQL uma breve introdução
PDF
noSQL com CouchDb e PHP
PPTX
SQL Saturday SP - SQL Server 2019 Big Data Clusters
PDF
Introdução ao MongoDB
PPTX
Elasticsearch como gerenciar seus logs com logstash e kibana
Introdução ao NoSql
MongoDB - Tudo o que você precisa saber
MongoDB - Apresentação
Curso mongo db com php
DocumentDB - Azure Fridays São Paulo
Mongo DB
BigData - ElasticSearch + PHP
Bancos de dados nosql (not only sql)
Minicurso Epoca mongoDB
Modelando aplicação em documento - MongoDB
#5 CRUD no MongoDB
Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...
Spring Data com MongoDB
Nosql e BD Orientados a Documentos
Treinamento Elasticsearch - Parte 2
NOSQL uma breve introdução
noSQL com CouchDb e PHP
SQL Saturday SP - SQL Server 2019 Big Data Clusters
Introdução ao MongoDB
Elasticsearch como gerenciar seus logs com logstash e kibana
Anúncio

Destaque (18)

PPTX
MongoDB for Beginners
PPTX
Mongo DB
PDF
Introduction to mongo db
PDF
MongoD Essentials
PDF
PDF
Mongo db basics
PPTX
Mongo DB: Fundamentals & Basics/ An Overview of MongoDB/ Mongo DB tutorials
PDF
Mongo db
PPTX
Connecting NodeJS & MongoDB
PDF
Redis for the Everyday Developer
KEY
Redis in Practice
PDF
Intro to NoSQL and MongoDB
PPTX
Mongo db
PDF
Mongo DB
PDF
Intro To MongoDB
PPT
Introduction to MongoDB
PDF
Introduction to Redis
PDF
Scalability, Availability & Stability Patterns
MongoDB for Beginners
Mongo DB
Introduction to mongo db
MongoD Essentials
Mongo db basics
Mongo DB: Fundamentals & Basics/ An Overview of MongoDB/ Mongo DB tutorials
Mongo db
Connecting NodeJS & MongoDB
Redis for the Everyday Developer
Redis in Practice
Intro to NoSQL and MongoDB
Mongo db
Mongo DB
Intro To MongoDB
Introduction to MongoDB
Introduction to Redis
Scalability, Availability & Stability Patterns
Anúncio

Semelhante a Mongo db (20)

PPT
Mongo Db - PHP Day Workshop
PPTX
Introdução ao MongoDB (NoSQL)
PPTX
Introdução ao NoSQL e modelagem de dados com MongoDB
PDF
mongodb.pdf
PDF
Mongodb praquer-usar-uaijugcloudday2014
PPTX
Apresentação MongoDB
PPTX
Workshop MongoDB
PDF
MongoDB outras alternativas de persistência
PPTX
No sql Orientado a documento
PPTX
MongoDB Aggregation Framework
PPTX
Apresentação - MongoDB
PPTX
#1 Introdução ao MongoDB
PDF
Mongopesl
PDF
Mongodb workshop cinlug
PDF
Introdução ao no sql e mongodb
PDF
Mini-Curso de MongoDB
ODP
MongoDB - Tudo o que você precisa saber - FISL16
PDF
acm, chapter, development, events, iscte, portugal, opensource, softwareApres...
PDF
MongoDB: introdução à sua próxima base de dados
PDF
MAC5855 - NoSQL
Mongo Db - PHP Day Workshop
Introdução ao MongoDB (NoSQL)
Introdução ao NoSQL e modelagem de dados com MongoDB
mongodb.pdf
Mongodb praquer-usar-uaijugcloudday2014
Apresentação MongoDB
Workshop MongoDB
MongoDB outras alternativas de persistência
No sql Orientado a documento
MongoDB Aggregation Framework
Apresentação - MongoDB
#1 Introdução ao MongoDB
Mongopesl
Mongodb workshop cinlug
Introdução ao no sql e mongodb
Mini-Curso de MongoDB
MongoDB - Tudo o que você precisa saber - FISL16
acm, chapter, development, events, iscte, portugal, opensource, softwareApres...
MongoDB: introdução à sua próxima base de dados
MAC5855 - NoSQL

Último (19)

PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Custos e liquidação no SAP Transportation Management, TM130 Col18
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Apple Pippin Uma breve introdução. - David Glotz
Aula 18 - Manipulacao De Arquivos python
COBITxITIL-Entenda as diferença em uso governança TI
Processos na gestão de transportes, TM100 Col18
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Aula04-Academia Heri- Tecnologia Geral 2025
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss

Mongo db

  • 2. AGENDA • NoSQL • MongoDB • Mongo shell • Data Modeling • CRUD Operations • Logical Operations • Links Úteis • Prática
  • 3. NOSQL • Termo utilizado pela primeira vez em 1998 (noREL) • São diferentes sistemas de armazenamento que vieram para suprir a necessidade em demandas onde os bancos relacionais são ineficazes.
  • 4. NOSQL • Com a crescente popularização da internet, diversos novos dados foram surgindo e tratá-los foi se tornando gradualmente mais complexo e sua manutenção mais cara
  • 5. NOSQL • Motivadores Alta performance Escalabilidade (Horizontal vs Vertical) Tolerância a falha Schemaless Em sua maioria open-source
  • 6. NOSQL • Tipos de bases de dados NoSQL • Column Inspirados pelo BigTable, da Google, suportam varias linhas e colunas, além de permitir subcolunas. Ex: Accumulo, Cassandra, BigTable, HBase, Cassandra • Document Baseados em documentos XML ou JSON, podem ser localizados pelo seu id único ou por qualquer registro que o documento possua. Ex: Lotus Notes, CouchDB, Couchbase, MongoDB, OrientDB
  • 7. NOSQL • Tipos de bases de dados NoSQL • Key-value Tipo de banco de dados mais simples, conceito de uma chave e um valor para essa chave. Mas é o que mais suporta carga de dados e possuem também maior escalabilidade. Ex: Dynamo, MemcacheDB, Redis, Riak • Graph Com complexidade maior, esses bancos de dados guardam objetos, e não registros como os outros tipos de NoSQL. A busca desses itens é feita pela navegação desses objetos. Ex: Allegro, Neo4J, InfiniteGraph • Multi-model • OrientDB, FoundationDB, ArangoDB, Alchemy Database, CortexDB
  • 8. MONGODB • Humongous Database • Alta performance • Alta disponibilidade • Schemaless • Distribuído • Baseada em documentos JSON • Open-Source
  • 9. PARA QUE USAR O MONGODB • Conjunto de dados diversificado, misturado • Concorrência massiva • Alta incerteza no dimensionamento • Sem tolerância a downtime • Necessidade rápido de escalonamento • Respostas rápidas • Grande volume de dados • Indecisão quanto ao schema • Necessidade de slicing • Falta de previsão quanto ao tamanho da base
  • 10. O QUE NÃO É O MONGODB • Uma suíte de Análise • Uma ferramenta de BI • Uma ferramenta de busca
  • 11. QUEM UTILIZA • Foursquare • GitHub • EasyTaxi • Globo.com • IG.com • bit.ly • Locaweb • Oi
  • 12. NO QUE O MONGODB NÃO É MUITO BOM • Gerenciamento de recursos de hardware • Não é uma feature do mongoDB configurar quantidade de RAM, nº de CPUs, ou operações de I/O para um usuário. • Joins entre collections e transações entre documentos • Controlado no nível da aplicação. Um bom design do schema reduz sua necessidade. • SQL • O mongoDB não fala essa língua
  • 13. DATA MODELING • Armazena Documentos no formato BSON • Agrupa documentos em Collections • Esquema flexível
  • 14. DATA MODELING • Estrutura do documento • Embedded • Modelo de dados “desnormalizado” • Armazena dados relacionados em um mesmo registro • Somente uma consulta para toda informação • Recomendado para: • Quando existe uma relação de “contém” entre entidades • Quando existe uma relação de one-to-many e o lado many sempre é visualizado em conjunto com seus documentos pais
  • 15. DATA MODELING • Estrutura do documento • Referencies • Modelo de dados normalizado • Mais flexível que embedded • Mais queries para buscar relações • Recomendado para: • Quando embedding duplicaria dados mas não proveria vantagens no desempenho de read que justificasse seu uso • Para representar relações de many-to-many mais complexas • Para modelar grandes conjuntos de dados hierárquicos
  • 16. DATA MODELING • Atomicidade • Garantir que qualquer transação seja “tudo ou nada” • mongoDB somente garante atomicidade no nível de um documento • mongoDB não implementa transação entre documentos ou collections
  • 17. DATA MODELING • GridFS • Especificação para armazenar e recuperar arquivos que excedem o tamanho de um documento (16MB) • Divide o arquivo em pedaços (chunks) e as armazenam em documentos separados, mantendo uma collection com meta dados dos arquivos • Recomendações de uso • Arquivo for maior que o tamanho de um documento • Necessidade de acessar parte de arquivos ao invés do arquivo todo
  • 18. CRUD OPERATIONS • Operações de Create, Read, Update e Delete • Cada operação afeta somente uma collection por vez
  • 19. CRUD OPERATIONS • Insert db.collection.insert( <document or array of documents>, { writeConcern: <document>, ordered: <boolean> } )
  • 20. CRUD OPERATIONS • Update db.collection.update( <query>, <update>, { upsert: <boolean>, multi: <boolean>, writeConcern: <document> } )
  • 23. OPERADORES LÓGICOS MONGO $lt (menor que) $lte (menor ou igual que) $gt (maior que) $gte (maior ou igual que) $all (corresponder a todos os valores em um array) $exists (verificar se um campo existe ou não) $mod (módulo) $ne (não igual)
  • 24. OPERADORES LÓGICOS MONGO $in (corresponder a um ou mais valores em um array) $nin (corresponder a valores zero em um array) $or (corresponder uma consulta a outra) $and (corresponder a todas as consultas) $nor (não corresponder uma consulta nem outra) $size (corresponder qualquer array com número definido de elementos) $type (corresponder valores com tipo de dados BSON especificado) $not (não igual a)
  • 25. COMANDOS MONGO • db.collection.count() retorna a quantidade de registros de uma coleção • db.collection.distinct({key}) retorna uma consulta distinta contendo todos os valores da chave informada • db.getCollectionNames() retorna todos os nomes das coleções • show dbs lista todas as bases de dados • use <data_base> conecta a uma base de dados
  • 26. COMANDOS MONGO • db exibe o nome da base de dados a qual está conectado • show collections exibe todas as coleções • db.collection.drop() deleta uma collection • db.dropDatabase() deleta uma base de dados • db.collection.selectOne()
  • 29. INICIALIZANDO • Processo mongod • Pasta data • Arquivo de configuração
  • 30. MONGOSHELL • Processo mongo • Shell interativo JavaScript • Autocompletion
  • 31. ROBOMONGO • Autocompletion • Space ignore • GUI Manipulation
  • 33. LINKS ÚTEIS • https://www.mongodb.org • https://docs.mongodb.org/manual/ • http://nosql-database.org • https://bitbucket.org/edmilsonneto/minicurso- mongodb • http://www.json.org