O documento introduz o MongoDB, um banco de dados NoSQL orientado a documentos. Ele descreve as principais características do MongoDB como a estrutura de dados JSON, a ausência de esquema, indexação, replicação e particionamento. Também compara o MongoDB com o SQL e mostra exemplos de consultas.
1. MongoDB - Introdução
Thiago Henrique Poiani <thpoiani@gmail.com>
Instituto Federal de Educação, Ciência e Tecnologia de São Paulo, campus São Carlos
2. NoSQL - Not Only SQL
Flexibilidade
Performance
Escalabilidade
Document databases: MongoDB
Graph stores: Neo4J, HyperGraphDB
Key-value stores: Redis, Riak, Voldemort
Wide-column stores: Cassandra, HBase
Instituto Federal de Educação, Ciência e Tecnologia de São Paulo, campus São Carlos
3. MongoDB
JSON - JavaScript Object Notation
{ field: value, field: { }, field: [element, element] }
Schemaless
Geospacial
Index
ReplicaSet - redundância e disponibilidade
Sharding - escalabilidade horizontal
Integração com Hadoop - processamento de grandes
massas de dados (Big Data)
Instituto Federal de Educação, Ciência e Tecnologia de São Paulo, campus São Carlos
4. MongoDB
SQL MongoDB
database database
table collection
row document or BSON document
column field
index index
table joins embedded documents and linking
Instituto Federal de Educação, Ciência e Tecnologia de São Paulo, campus São Carlos
5.
6. MongoDB
db.aluno.findOne();
{
"_id" : ObjectId("5348a90ba1830aff2103a394"),
"nome": "Thiago Henrique Poiani",
"email" : "thpoiani@gmail.com",
"idade": 21,
"endereco": {
"logradouro": "Rua Jurupema",
"numero": 16,
"cidade": "Araraquara",
"estado": "SP"
},
"interesses": [
"nosql",
"node.js"
],
"ativo": true,
"cadastro" : ISODate("2014-04-12T02:46:35.981Z")
}
Instituto Federal de Educação, Ciência e Tecnologia de São Paulo, campus São Carlos
7. MongoDB
SQL MongoDB
WHERE $match
GROUP BY $group
HAVING $match
SELECT $project
ORDER BY $sort
LIMIT $limit
SUM() $sum
COUNT() $sum
join $unwind
Instituto Federal de Educação, Ciência e Tecnologia de São Paulo, campus São Carlos
8. db.zips.aggregate([
{$match: { state:"NY" } },
{$group:
{
_id: "$city",
population: {$sum:"$pop"},
}
},
{$project:
{
_id: 0,
city: "$_id",
population: 1,
}
},
{$sort:
{
population:-1
}
},
{$skip: 10},
{$limit: 5}
])
Instituto Federal de Educação, Ciência e Tecnologia de São Paulo, campus São Carlos
9. Na prática, via terminal
$ mongod
$ mongo
Instituto Federal de Educação, Ciência e Tecnologia de São Paulo, campus São Carlos
11. DUMP
$ mongodump --host 127.0.0.1 --port 27017 --
db database --collection collection --out
/opt/mongodump.bson
$ mongorestore -h 127.0.0.1 --port 27017 -d
database -c collection /opt/mongodump.bson
Import
$ mongoimport --db database --collection
collection --file documents.json
Instituto Federal de Educação, Ciência e Tecnologia de São Paulo, campus São Carlos
12. https://university.mongodb.com/
MongoDB for Java Developers
MongoDB for Node.js Developers
MongoDB for Developers
MongoDB for DBAs
MongoDB Advanced Deployment and Operations
Instituto Federal de Educação, Ciência e Tecnologia de São Paulo, campus São Carlos