SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
Sobre MongoDB...tenho um
site bacana WWW.GOOGLE.
COM.BR
Instalação...
na raiz crie o caminho /data/db
Download >> http://www.mongodb.org/downloads
Descompacte o .zip..
Na pasta bin...
- execute mongod.exe
- e mongo.exe
CHAPLOU!!
MongoDB Instalado e Rodando!
O que é o que em MongoDB
fazendo uma analogia com que usamos atualmente...
MongoDB MySQL
DB schema
Collection tabela
Document 1 registro na base
Index Index
DB
- Não precisa ser criado explicitamente
- comandos:
show dbs
use nome_db
Collections
- Tb Não precisa ser criado explicitamente
- comando:
show collections
Tipos suportados...
null
boolean
MongoBinDate
string
(UTF-8)
MongoId
(4cb4ab6d7addf98506010000)
integer
(32/64 bit)
double
MongoDate
array
associative array
("object" for java script)
Documents
- Armazenados como BSON (Binary JSON)
- Pode ter documentos embutidos
- DEVE TER um unico ID (_id)
{
"_id" : "4cb4ab6d7addf98506010000",
"name" : "Rodrigo Monteiro",
"idade" : 29,
"redessocial" : [ { "rede" : "facebook",
"url" : "facebook.com/rodrigoma" },
{ "rede" : "twitter",
"url" : "twitter.com/rodrigoma" } ]
}
MongoId
Documents
mais alguns exemplos de documentos....
{ "_id" : 1, "tipo" : "circulo", "area" : 3.14, "radius" : 1 }
{ "_id" : 2, "tipo" : "quadrado", "area" : 4, "d" : 2 }
{ _id : 3, tipo : "retangulo", area : 10, length : 5, width : 2 }
{
"_id" : 4,
"name" : "Fulano",
"likes" : ["videogame", "filmes", "programacao", "tecnologia" ]
}
Index
{
"v" : 1,
"key" : { "_id" : 1 },
"ns" : "test.ppt",
"name" : "_id_"
}
{
"v" : 1,
"key" : { "_id" : 1 },
"ns" : "test.posts",
"name" : "_id_"
},
{
"v" : 1,
"key" : { "author" : -1 },
"ns" : "test.posts",
"name" : "author_-1"
}
Comandos - insert
db.ppt.help()
db.ppt.count()
db.ppt.drop()
db.ppt.dropIndex()
db.ppt.ensureIndex()
db.ppt.getIndexes()
db.ppt.insert( { _id : 1, tipo : "circulo", area : 3.14, radius : 1 } )
db.ppt.insert( { _id : 2, tipo : "retangulo", area : 10, len : 5, w : 2 }
)
db.ppt.insert( { _id : 3, tipo : "quadrado", area : 4, d : 2 } )
Comandos - find - findOne
operadores de comparação
$all $in $nin
$gte $gt
$lt $lte
$ne
db.ppt.findOne([query])
db.ppt.find() [count(), limit(), skip(), sort(), pretty()]
db.ppt.find( { "tipo" : "quadrado" } )
db.ppt.find( { "tipo" : "quadrado" }, { tipo : 1, _id : 0 } )
Comandos - update
db.ppt.update( { _id : 1 }, { tipo : "circulo2" } )
db.ppt.update( { _id : 1 }, { $set : { tipo : "circulo" } } )
db.ppt.update( { _id : 1 }, { $set : { cor : "amarelo" } } )
db.ppt.update( { _id : 1 }, { $unset : { cor : "amarelo" } } )
db.ppt.update( { _id : 1 }, { $push : { onde : "ventilador" } } )
db.ppt.update( { _id : 1 }, { $addToSet : { onde : "ventilador" } } )
db.ppt.update( { _id : 1 }, { $pull : { onde : "ventilador" } } )
db.ppt.update( { _id : 1 }, { $set : { 'onde.0' : "roda" } } )
db.ppt.update( { _id : 1 }, { $inc : { radius : 1 } } )
db.ppt.update( { area : { $gt : 2 } }, { $set : { cor : "azul" } }, {
multi: true } )
Comandos - Aggregate
$project
$match
$limit
$skip
$unwind
$group
$sort
$geoNear
NÃO ESQUECER DE RODAR O SCRIPT
Comandos - Aggregate
db.posts.aggregate( [
{ $project : { _id : 0, comments : 1 } },
{ $limit : 1 },
{ $unwind : "$comments" },
{ $project : { "comments.author" : 1 } },
{ $group : { "_id" : "$comments.author", "count" : { $sum : 1 } } },
{ $sort : { "count" : -1 } }
] )
E NO JAVA
<!-- Mongo Java Driver -->
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>2.10.1</version>
</dependency>
http://docs.mongodb.org/ecosystem/drivers/
Sharding - é a abordagem da MongoDB para
dimensionamento.
- Particiona uma collection e
armazena diferentes partes em
diferentes máquinas.
Quando uma collection tornar-se
muito grande para o
armazenamento existente,
é só precisa adicionar uma nova
máquina.
- distribui automaticamente a
collection para o novo servidor.
- equilibra automaticamente os
dados e carga entre máquinas.
Replica Set
É um conjunto de instâncias do mongod
que replicam entre si contra falha. A
maioria dos ReplicaSet é constituido de 2
ou mais instâncias de mongod, com no
máximo um deles designado como
primário e o resto como membros
secundários. Escritas são feitas na
primária, enquanto os membros da
secundária replicam a partir da primária
de forma assincrona. Com isso temos
redundância, ajuda a garantir alta
disponibilidade, simplifica algumas tarefas
administrativas, tais como backups, e
pode aumentar a capacidade de leitura. A
maioria das implantações usam
replicação.
MongoDB (2.2)
Best used: If you need dynamic queries. If you prefer to
define indexes, not map/reduce functions. If you need good
performance on a big DB. If you wanted CouchDB, but your
data changes too much, filling up disks.
For example: For most things that you would do with
MySQL or PostgreSQL, but having predefined columns
really holds you back.
Redis (V2.4)
Best used: For rapidly changing data with a foreseeable
database size (should fit mostly in memory).
For example: Stock prices. Analytics. Real-time data
collection. Real-time communication. And wherever you
used memcached before.
PARA MAIS INFORMAÇÕES: http://kkovacs.eu/cassandra-vs-
mongodb-vs-couchdb-vs-redis
CouchDB (V1.2)
Best used: For accumulating, occasionally changing data,
on which pre-defined queries are to be run. Places where
versioning is important.
For example: CRM, CMS systems. Master-master
replication is an especially interesting feature, allowing
easy multi-site deployments.
Cassandra (1.2)
Best used: When you write more than you read (logging).
If every component of the system must be in Java. ("No
one gets fired for choosing Apache's stuff.")
For example: Banking, financial industry (though not
necessarily for financial transactions, but these industries
are much bigger than that.) Writes are faster than reads, so
one natural niche is data analysis.
Onde podemos usar
?????
substituir o proprio mysql que usamos hoje
os arquivos de logs (click, action, impressão),
para tirar relatorios usando o aggregation
EXEMPLO >>>>>
LOG DE CLICK
{
date : "2013-05-07 16:01:00",
referrer : "http://ads.lomadee.com/as/iframeContent.html?mdsrc=23177319&dim=728_90&c=BR",
requestUrl : "http://compare.buscape.com.br/tr/rd?a=a2VrFQ0oZQcwahFpOQgSMBxtLWo",
cookies : "xb=Xbox+360+250GB&Huawei+E5&simpsons+temporada; idloc=1891254215420130507093908675",
extralog : {
mdsrc : 23177319, mddtn : 167353925, mdsit : 33385672, mdpub : 22242753,
mdadv : 1, mdcountry : "BR", mdapp : 134, mdidprof : 0, mdidbehav : 0,
dtn_url : "http%3A%2F%2Fwww.mobly.com.br%2Fcabideiro-cubo-5-ganchos-imbuia-3384.html",
elxx : "1891254215420130507160056081", elst : 0, versionlk : 5,
mdgenericadid : 1228403, mdcreationlkdate : "2013-05-07+15%3A40%3A25",
mdoff : 117701143, mdidcateg : 1487, mdidofr : 117701143,
mdpos : 4, pr : 322, invalidsource : 23177319
},
ip : "189.125.42.154",
useragent : "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1496.0
Safari/537.36"
}
perguntas ?
thanks

Weitere ähnliche Inhalte

Was ist angesagt?

MongoDB - Apresentação
MongoDB - ApresentaçãoMongoDB - Apresentação
MongoDB - ApresentaçãoTerra / Neo
 
Mini-Curso de MongoDB
Mini-Curso de MongoDBMini-Curso de MongoDB
Mini-Curso de MongoDBBrunno Gomes
 
Minicurso Epoca mongoDB
Minicurso Epoca mongoDBMinicurso Epoca mongoDB
Minicurso Epoca mongoDBLelyBarros
 
Nosql e BD Orientados a Documentos
Nosql e BD Orientados a DocumentosNosql e BD Orientados a Documentos
Nosql e BD Orientados a DocumentosYuri Adams
 
Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...
Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...
Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...Miguel Gallardo
 
Hands-on Workshop: Como configurar e utilizar uma estrutura MongoDB para Big ...
Hands-on Workshop: Como configurar e utilizar uma estrutura MongoDB para Big ...Hands-on Workshop: Como configurar e utilizar uma estrutura MongoDB para Big ...
Hands-on Workshop: Como configurar e utilizar uma estrutura MongoDB para Big ...Big Data Week São Paulo
 
Como o elasticsearch salvou minhas buscas
Como o elasticsearch salvou minhas buscasComo o elasticsearch salvou minhas buscas
Como o elasticsearch salvou minhas buscasWaldemar Neto
 
BigData - ElasticSearch + PHP
BigData - ElasticSearch + PHPBigData - ElasticSearch + PHP
BigData - ElasticSearch + PHPFelipe Weckx
 
Palestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl WorkshopPalestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl WorkshopAlexei Znamensky
 
MongoDB: Uma forma diferente de pensar no desenvolvimento
MongoDB: Uma forma diferente de pensar no desenvolvimento MongoDB: Uma forma diferente de pensar no desenvolvimento
MongoDB: Uma forma diferente de pensar no desenvolvimento Marcos Thomaz
 
Mude seu jeito de pensar com MongoDB
Mude seu jeito de pensar com MongoDBMude seu jeito de pensar com MongoDB
Mude seu jeito de pensar com MongoDBDouglas Lira
 
Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7Christiano Anderson
 

Was ist angesagt? (20)

Palestra MongoDB
Palestra MongoDBPalestra MongoDB
Palestra MongoDB
 
MongoDB - Apresentação
MongoDB - ApresentaçãoMongoDB - Apresentação
MongoDB - Apresentação
 
Mini-Curso de MongoDB
Mini-Curso de MongoDBMini-Curso de MongoDB
Mini-Curso de MongoDB
 
Minicurso Epoca mongoDB
Minicurso Epoca mongoDBMinicurso Epoca mongoDB
Minicurso Epoca mongoDB
 
Nosql e BD Orientados a Documentos
Nosql e BD Orientados a DocumentosNosql e BD Orientados a Documentos
Nosql e BD Orientados a Documentos
 
#5 CRUD no MongoDB
#5   CRUD  no MongoDB#5   CRUD  no MongoDB
#5 CRUD no MongoDB
 
Treinamento Elasticsearch - Parte 1
Treinamento Elasticsearch - Parte 1Treinamento Elasticsearch - Parte 1
Treinamento Elasticsearch - Parte 1
 
Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...
Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...
Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...
 
NoSQL e MongoDB - ETEC
NoSQL e MongoDB - ETECNoSQL e MongoDB - ETEC
NoSQL e MongoDB - ETEC
 
MongoDB - Iniciando e Conhecendo
MongoDB - Iniciando e ConhecendoMongoDB - Iniciando e Conhecendo
MongoDB - Iniciando e Conhecendo
 
Hands-on Workshop: Como configurar e utilizar uma estrutura MongoDB para Big ...
Hands-on Workshop: Como configurar e utilizar uma estrutura MongoDB para Big ...Hands-on Workshop: Como configurar e utilizar uma estrutura MongoDB para Big ...
Hands-on Workshop: Como configurar e utilizar uma estrutura MongoDB para Big ...
 
Treinamento Elasticsearch - Parte 2
Treinamento Elasticsearch - Parte 2Treinamento Elasticsearch - Parte 2
Treinamento Elasticsearch - Parte 2
 
Mongo db
Mongo dbMongo db
Mongo db
 
Como o elasticsearch salvou minhas buscas
Como o elasticsearch salvou minhas buscasComo o elasticsearch salvou minhas buscas
Como o elasticsearch salvou minhas buscas
 
BigData - ElasticSearch + PHP
BigData - ElasticSearch + PHPBigData - ElasticSearch + PHP
BigData - ElasticSearch + PHP
 
Palestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl WorkshopPalestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl Workshop
 
MongoDB: Uma forma diferente de pensar no desenvolvimento
MongoDB: Uma forma diferente de pensar no desenvolvimento MongoDB: Uma forma diferente de pensar no desenvolvimento
MongoDB: Uma forma diferente de pensar no desenvolvimento
 
Mude seu jeito de pensar com MongoDB
Mude seu jeito de pensar com MongoDBMude seu jeito de pensar com MongoDB
Mude seu jeito de pensar com MongoDB
 
Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7
 
Mongodb workshop cinlug
Mongodb workshop cinlugMongodb workshop cinlug
Mongodb workshop cinlug
 

Andere mochten auch

Tecnologia educativa. maria jose lemir
Tecnologia educativa. maria jose lemirTecnologia educativa. maria jose lemir
Tecnologia educativa. maria jose lemirmariajose2013_4
 
Shared mutability
Shared mutabilityShared mutability
Shared mutabilitydist_bp
 
Ad server cassandra
Ad server cassandraAd server cassandra
Ad server cassandradist_bp
 
Presentation1
Presentation1Presentation1
Presentation1kwante
 
NAMP Conference - Augmented Reality
NAMP Conference - Augmented RealityNAMP Conference - Augmented Reality
NAMP Conference - Augmented RealitySalvador Acevedo
 
New Malaysia 2012
New Malaysia 2012New Malaysia 2012
New Malaysia 2012epaper5
 

Andere mochten auch (7)

Tecnologia educativa. maria jose lemir
Tecnologia educativa. maria jose lemirTecnologia educativa. maria jose lemir
Tecnologia educativa. maria jose lemir
 
Shared mutability
Shared mutabilityShared mutability
Shared mutability
 
Ad server cassandra
Ad server cassandraAd server cassandra
Ad server cassandra
 
Jaringan Komputer
Jaringan KomputerJaringan Komputer
Jaringan Komputer
 
Presentation1
Presentation1Presentation1
Presentation1
 
NAMP Conference - Augmented Reality
NAMP Conference - Augmented RealityNAMP Conference - Augmented Reality
NAMP Conference - Augmented Reality
 
New Malaysia 2012
New Malaysia 2012New Malaysia 2012
New Malaysia 2012
 

Ähnlich wie MongoDB Introdução Completa

MongoDB: um banco de dados orientado a documento
MongoDB: um banco de dados orientado a documentoMongoDB: um banco de dados orientado a documento
MongoDB: um banco de dados orientado a documentoJulio Monteiro
 
Escalando MongoDB com Docker - Cristiano dos Santos Diedrich - Tchelinux Bent...
Escalando MongoDB com Docker - Cristiano dos Santos Diedrich - Tchelinux Bent...Escalando MongoDB com Docker - Cristiano dos Santos Diedrich - Tchelinux Bent...
Escalando MongoDB com Docker - Cristiano dos Santos Diedrich - Tchelinux Bent...Tchelinux
 
Mecanismo de busca .NET Core + MongoDB
Mecanismo de busca .NET Core + MongoDBMecanismo de busca .NET Core + MongoDB
Mecanismo de busca .NET Core + MongoDBLuiz Duarte
 
NoSQL com Zend Framework 2
NoSQL com Zend Framework 2NoSQL com Zend Framework 2
NoSQL com Zend Framework 2Flávio Lisboa
 
Mongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopMongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopDiego Sana
 
Gerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntGerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntDenis L Presciliano
 
Gerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntGerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntDenis L Presciliano
 
JS Experience 2017 - WebAssembly na Prática
JS Experience 2017 - WebAssembly na PráticaJS Experience 2017 - WebAssembly na Prática
JS Experience 2017 - WebAssembly na PráticaiMasters
 
Introdução no sql mongodb java
Introdução no sql mongodb javaIntrodução no sql mongodb java
Introdução no sql mongodb javaFabiano Modos
 
Uma implementação de suporte a
Uma implementação de suporte a Uma implementação de suporte a
Uma implementação de suporte a Rômulo Jales
 

Ähnlich wie MongoDB Introdução Completa (20)

MongoDB + PHP
MongoDB + PHPMongoDB + PHP
MongoDB + PHP
 
Python e MongoDB - Ensol
Python e MongoDB - EnsolPython e MongoDB - Ensol
Python e MongoDB - Ensol
 
MongoDB na Campus Party
MongoDB na Campus PartyMongoDB na Campus Party
MongoDB na Campus Party
 
Workshop MongoDB
Workshop MongoDBWorkshop MongoDB
Workshop MongoDB
 
MongoDB: um banco de dados orientado a documento
MongoDB: um banco de dados orientado a documentoMongoDB: um banco de dados orientado a documento
MongoDB: um banco de dados orientado a documento
 
Escalando MongoDB com Docker - Cristiano dos Santos Diedrich - Tchelinux Bent...
Escalando MongoDB com Docker - Cristiano dos Santos Diedrich - Tchelinux Bent...Escalando MongoDB com Docker - Cristiano dos Santos Diedrich - Tchelinux Bent...
Escalando MongoDB com Docker - Cristiano dos Santos Diedrich - Tchelinux Bent...
 
Mongo db slides
Mongo db slidesMongo db slides
Mongo db slides
 
Palestra cbq
Palestra cbqPalestra cbq
Palestra cbq
 
Pos-QCon-BigData
Pos-QCon-BigDataPos-QCon-BigData
Pos-QCon-BigData
 
#1 Introdução ao MongoDB
#1   Introdução ao MongoDB#1   Introdução ao MongoDB
#1 Introdução ao MongoDB
 
Mecanismo de busca .NET Core + MongoDB
Mecanismo de busca .NET Core + MongoDBMecanismo de busca .NET Core + MongoDB
Mecanismo de busca .NET Core + MongoDB
 
NoSQL com Zend Framework 2
NoSQL com Zend Framework 2NoSQL com Zend Framework 2
NoSQL com Zend Framework 2
 
Mongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopMongo Db - PHP Day Workshop
Mongo Db - PHP Day Workshop
 
PHPMongoDB
PHPMongoDBPHPMongoDB
PHPMongoDB
 
MAC5855 - NoSQL
MAC5855 - NoSQLMAC5855 - NoSQL
MAC5855 - NoSQL
 
Gerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntGerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache Ant
 
Gerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntGerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache Ant
 
JS Experience 2017 - WebAssembly na Prática
JS Experience 2017 - WebAssembly na PráticaJS Experience 2017 - WebAssembly na Prática
JS Experience 2017 - WebAssembly na Prática
 
Introdução no sql mongodb java
Introdução no sql mongodb javaIntrodução no sql mongodb java
Introdução no sql mongodb java
 
Uma implementação de suporte a
Uma implementação de suporte a Uma implementação de suporte a
Uma implementação de suporte a
 

MongoDB Introdução Completa

  • 1.
  • 2. Sobre MongoDB...tenho um site bacana WWW.GOOGLE. COM.BR
  • 3. Instalação... na raiz crie o caminho /data/db Download >> http://www.mongodb.org/downloads Descompacte o .zip.. Na pasta bin... - execute mongod.exe - e mongo.exe CHAPLOU!! MongoDB Instalado e Rodando!
  • 4. O que é o que em MongoDB fazendo uma analogia com que usamos atualmente... MongoDB MySQL DB schema Collection tabela Document 1 registro na base Index Index
  • 5. DB - Não precisa ser criado explicitamente - comandos: show dbs use nome_db Collections - Tb Não precisa ser criado explicitamente - comando: show collections
  • 7. Documents - Armazenados como BSON (Binary JSON) - Pode ter documentos embutidos - DEVE TER um unico ID (_id) { "_id" : "4cb4ab6d7addf98506010000", "name" : "Rodrigo Monteiro", "idade" : 29, "redessocial" : [ { "rede" : "facebook", "url" : "facebook.com/rodrigoma" }, { "rede" : "twitter", "url" : "twitter.com/rodrigoma" } ] } MongoId
  • 8. Documents mais alguns exemplos de documentos.... { "_id" : 1, "tipo" : "circulo", "area" : 3.14, "radius" : 1 } { "_id" : 2, "tipo" : "quadrado", "area" : 4, "d" : 2 } { _id : 3, tipo : "retangulo", area : 10, length : 5, width : 2 } { "_id" : 4, "name" : "Fulano", "likes" : ["videogame", "filmes", "programacao", "tecnologia" ] }
  • 9. Index { "v" : 1, "key" : { "_id" : 1 }, "ns" : "test.ppt", "name" : "_id_" } { "v" : 1, "key" : { "_id" : 1 }, "ns" : "test.posts", "name" : "_id_" }, { "v" : 1, "key" : { "author" : -1 }, "ns" : "test.posts", "name" : "author_-1" }
  • 10. Comandos - insert db.ppt.help() db.ppt.count() db.ppt.drop() db.ppt.dropIndex() db.ppt.ensureIndex() db.ppt.getIndexes() db.ppt.insert( { _id : 1, tipo : "circulo", area : 3.14, radius : 1 } ) db.ppt.insert( { _id : 2, tipo : "retangulo", area : 10, len : 5, w : 2 } ) db.ppt.insert( { _id : 3, tipo : "quadrado", area : 4, d : 2 } )
  • 11. Comandos - find - findOne operadores de comparação $all $in $nin $gte $gt $lt $lte $ne db.ppt.findOne([query]) db.ppt.find() [count(), limit(), skip(), sort(), pretty()] db.ppt.find( { "tipo" : "quadrado" } ) db.ppt.find( { "tipo" : "quadrado" }, { tipo : 1, _id : 0 } )
  • 12. Comandos - update db.ppt.update( { _id : 1 }, { tipo : "circulo2" } ) db.ppt.update( { _id : 1 }, { $set : { tipo : "circulo" } } ) db.ppt.update( { _id : 1 }, { $set : { cor : "amarelo" } } ) db.ppt.update( { _id : 1 }, { $unset : { cor : "amarelo" } } ) db.ppt.update( { _id : 1 }, { $push : { onde : "ventilador" } } ) db.ppt.update( { _id : 1 }, { $addToSet : { onde : "ventilador" } } ) db.ppt.update( { _id : 1 }, { $pull : { onde : "ventilador" } } ) db.ppt.update( { _id : 1 }, { $set : { 'onde.0' : "roda" } } ) db.ppt.update( { _id : 1 }, { $inc : { radius : 1 } } ) db.ppt.update( { area : { $gt : 2 } }, { $set : { cor : "azul" } }, { multi: true } )
  • 14. Comandos - Aggregate db.posts.aggregate( [ { $project : { _id : 0, comments : 1 } }, { $limit : 1 }, { $unwind : "$comments" }, { $project : { "comments.author" : 1 } }, { $group : { "_id" : "$comments.author", "count" : { $sum : 1 } } }, { $sort : { "count" : -1 } } ] )
  • 15. E NO JAVA <!-- Mongo Java Driver --> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>2.10.1</version> </dependency> http://docs.mongodb.org/ecosystem/drivers/
  • 16. Sharding - é a abordagem da MongoDB para dimensionamento. - Particiona uma collection e armazena diferentes partes em diferentes máquinas. Quando uma collection tornar-se muito grande para o armazenamento existente, é só precisa adicionar uma nova máquina. - distribui automaticamente a collection para o novo servidor. - equilibra automaticamente os dados e carga entre máquinas.
  • 17. Replica Set É um conjunto de instâncias do mongod que replicam entre si contra falha. A maioria dos ReplicaSet é constituido de 2 ou mais instâncias de mongod, com no máximo um deles designado como primário e o resto como membros secundários. Escritas são feitas na primária, enquanto os membros da secundária replicam a partir da primária de forma assincrona. Com isso temos redundância, ajuda a garantir alta disponibilidade, simplifica algumas tarefas administrativas, tais como backups, e pode aumentar a capacidade de leitura. A maioria das implantações usam replicação.
  • 18. MongoDB (2.2) Best used: If you need dynamic queries. If you prefer to define indexes, not map/reduce functions. If you need good performance on a big DB. If you wanted CouchDB, but your data changes too much, filling up disks. For example: For most things that you would do with MySQL or PostgreSQL, but having predefined columns really holds you back. Redis (V2.4) Best used: For rapidly changing data with a foreseeable database size (should fit mostly in memory). For example: Stock prices. Analytics. Real-time data collection. Real-time communication. And wherever you used memcached before. PARA MAIS INFORMAÇÕES: http://kkovacs.eu/cassandra-vs- mongodb-vs-couchdb-vs-redis CouchDB (V1.2) Best used: For accumulating, occasionally changing data, on which pre-defined queries are to be run. Places where versioning is important. For example: CRM, CMS systems. Master-master replication is an especially interesting feature, allowing easy multi-site deployments. Cassandra (1.2) Best used: When you write more than you read (logging). If every component of the system must be in Java. ("No one gets fired for choosing Apache's stuff.") For example: Banking, financial industry (though not necessarily for financial transactions, but these industries are much bigger than that.) Writes are faster than reads, so one natural niche is data analysis.
  • 20. substituir o proprio mysql que usamos hoje os arquivos de logs (click, action, impressão), para tirar relatorios usando o aggregation EXEMPLO >>>>>
  • 21. LOG DE CLICK { date : "2013-05-07 16:01:00", referrer : "http://ads.lomadee.com/as/iframeContent.html?mdsrc=23177319&dim=728_90&c=BR", requestUrl : "http://compare.buscape.com.br/tr/rd?a=a2VrFQ0oZQcwahFpOQgSMBxtLWo", cookies : "xb=Xbox+360+250GB&Huawei+E5&simpsons+temporada; idloc=1891254215420130507093908675", extralog : { mdsrc : 23177319, mddtn : 167353925, mdsit : 33385672, mdpub : 22242753, mdadv : 1, mdcountry : "BR", mdapp : 134, mdidprof : 0, mdidbehav : 0, dtn_url : "http%3A%2F%2Fwww.mobly.com.br%2Fcabideiro-cubo-5-ganchos-imbuia-3384.html", elxx : "1891254215420130507160056081", elst : 0, versionlk : 5, mdgenericadid : 1228403, mdcreationlkdate : "2013-05-07+15%3A40%3A25", mdoff : 117701143, mdidcateg : 1487, mdidofr : 117701143, mdpos : 4, pr : 322, invalidsource : 23177319 }, ip : "189.125.42.154", useragent : "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1496.0 Safari/537.36" }