Mongo DB
-
Upload
distbp -
Category
Technology
-
view
469 -
download
1
description
Transcript of Mongo DB
![Page 1: Mongo DB](https://reader034.fdocument.pub/reader034/viewer/2022052505/55568e99d8b42acc5e8b48c0/html5/thumbnails/1.jpg)
![Page 2: Mongo DB](https://reader034.fdocument.pub/reader034/viewer/2022052505/55568e99d8b42acc5e8b48c0/html5/thumbnails/2.jpg)
Sobre MongoDB...tenho um site bacana WWW.GOOGLE.
COM.BR
![Page 3: Mongo DB](https://reader034.fdocument.pub/reader034/viewer/2022052505/55568e99d8b42acc5e8b48c0/html5/thumbnails/3.jpg)
Instalação...
na raiz crie o caminho /data/dbDownload >> http://www.mongodb.org/downloadsDescompacte o .zip..Na pasta \bin...- execute mongod.exe- e mongo.exe
CHAPLOU!!
MongoDB Instalado e Rodando!
![Page 4: Mongo DB](https://reader034.fdocument.pub/reader034/viewer/2022052505/55568e99d8b42acc5e8b48c0/html5/thumbnails/4.jpg)
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
![Page 5: Mongo DB](https://reader034.fdocument.pub/reader034/viewer/2022052505/55568e99d8b42acc5e8b48c0/html5/thumbnails/5.jpg)
DB- Não precisa ser criado explicitamente- comandos:
show dbsuse nome_db
Collections- Tb Não precisa ser criado explicitamente- comando:
show collections
![Page 6: Mongo DB](https://reader034.fdocument.pub/reader034/viewer/2022052505/55568e99d8b42acc5e8b48c0/html5/thumbnails/6.jpg)
Tipos suportados...
null
boolean
MongoBi
nDate
string (UTF-8)
MongoId (4cb4ab6d7addf98506010000)
integer (32/64 bit)
double
MongoDate arrayassociative array ("object" for java script)
![Page 7: Mongo DB](https://reader034.fdocument.pub/reader034/viewer/2022052505/55568e99d8b42acc5e8b48c0/html5/thumbnails/7.jpg)
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
![Page 8: Mongo DB](https://reader034.fdocument.pub/reader034/viewer/2022052505/55568e99d8b42acc5e8b48c0/html5/thumbnails/8.jpg)
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" ]
}
![Page 9: Mongo DB](https://reader034.fdocument.pub/reader034/viewer/2022052505/55568e99d8b42acc5e8b48c0/html5/thumbnails/9.jpg)
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"
}
![Page 10: Mongo DB](https://reader034.fdocument.pub/reader034/viewer/2022052505/55568e99d8b42acc5e8b48c0/html5/thumbnails/10.jpg)
Comandos - insertdb.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 } )
![Page 11: Mongo DB](https://reader034.fdocument.pub/reader034/viewer/2022052505/55568e99d8b42acc5e8b48c0/html5/thumbnails/11.jpg)
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 } )
![Page 12: Mongo DB](https://reader034.fdocument.pub/reader034/viewer/2022052505/55568e99d8b42acc5e8b48c0/html5/thumbnails/12.jpg)
Comandos - updatedb.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 } )
![Page 13: Mongo DB](https://reader034.fdocument.pub/reader034/viewer/2022052505/55568e99d8b42acc5e8b48c0/html5/thumbnails/13.jpg)
Comandos - Aggregate$project
$match
$limit
$skip
$unwind
$group
$sort
$geoNear
NÃO ESQUECER DE RODAR O SCRIPT
![Page 14: Mongo DB](https://reader034.fdocument.pub/reader034/viewer/2022052505/55568e99d8b42acc5e8b48c0/html5/thumbnails/14.jpg)
Comandos - Aggregatedb.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 } }
] )
![Page 15: Mongo DB](https://reader034.fdocument.pub/reader034/viewer/2022052505/55568e99d8b42acc5e8b48c0/html5/thumbnails/15.jpg)
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/
![Page 16: Mongo DB](https://reader034.fdocument.pub/reader034/viewer/2022052505/55568e99d8b42acc5e8b48c0/html5/thumbnails/16.jpg)
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.
![Page 17: Mongo DB](https://reader034.fdocument.pub/reader034/viewer/2022052505/55568e99d8b42acc5e8b48c0/html5/thumbnails/17.jpg)
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.
![Page 18: Mongo DB](https://reader034.fdocument.pub/reader034/viewer/2022052505/55568e99d8b42acc5e8b48c0/html5/thumbnails/18.jpg)
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.
![Page 19: Mongo DB](https://reader034.fdocument.pub/reader034/viewer/2022052505/55568e99d8b42acc5e8b48c0/html5/thumbnails/19.jpg)
Onde podemos usar ?????
![Page 20: Mongo DB](https://reader034.fdocument.pub/reader034/viewer/2022052505/55568e99d8b42acc5e8b48c0/html5/thumbnails/20.jpg)
substituir o proprio mysql que usamos hoje
os arquivos de logs (click, action, impressão), para tirar relatorios usando o aggregation
EXEMPLO >>>>>
![Page 21: Mongo DB](https://reader034.fdocument.pub/reader034/viewer/2022052505/55568e99d8b42acc5e8b48c0/html5/thumbnails/21.jpg)
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"}
![Page 22: Mongo DB](https://reader034.fdocument.pub/reader034/viewer/2022052505/55568e99d8b42acc5e8b48c0/html5/thumbnails/22.jpg)
perguntas ?
thanks