Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Introdução ao Rodrigo Hjort [email_address]
 
 
“ MongoDB (from "humongous") is a scalable, high-performance, open source, powerful, document-oriented database ...
O modelo de dados Relacional (Tabular) Orientado a Documentos
Modelo Relacional
Modelo Orientado a Documentos
Um documento JSON { _id : ObjectId("5ebf5e0fec5fab7db2b9b40e"), title : "Introdução ao MongoDB", slug ...
Tipos de Dados null regexp array string code float date boolean binary integer
lightweight traversable efficient
Embed vs Reference Embedded DBRef
Insert, Update, Delete INSERT INTO usuarios (nome, idade, ativo) VALUES ('xunda', 32, true) > db.usuarios.insert( {nome:  ...
Modificadores Atômicos UPDATE posts SET hits = hits + 1 WHERE id = 999 > db.posts.update( { _id : new ObjectId("4c041...
Linguagem de Consulta SELECT * FROM usuarios > db.usuarios.find() SELECT nome FROM usuarios > db.usuarios.find({}, { “ nom...
Linguagem de Consulta SELECT * FROM usuarios ORDER BY nome > db.usuarios.find().sort({ “ nome ” : 1}) SELECT * FROM usuari...
Indexação ensureIndex() explain() hint() índice geoespacial Yes!!!
Agregação e Map/Reduce count() group() distinct() Map/Reduce
Capped Collections natural sort tailable cursors tail -f fila circular
GridFS mongofiles
Server-Side Scripting db.eval() system.js JavaScript
Replicação: Master/Slave
Replicação: Replica Sets
Sharding
Arquitetura com Sharding
Auto-Sharding + Replicação
10gen.com mongodb.org Suporte e Treinamento
Literatura
Quem está usando?
Rodrigo Hjort [email_address] http://agajorte.blogspot.com "If I had asked people what they wanted, they would have s...
Upcoming SlideShare
Loading in …5
×

Introdução ao MongoDB

2,888 views

Published on

As grandes rupturas: IMS x RDBMS x NoSQL
Sobre o MongoDB
O modelo de dados orientado a documentos
Um documento JSON
Tipos de Dados do MongoDB
O formato BSON (Binary JSON)
Embed vs Reference
Insert, Update, Delete
Modificadores Atômicos
Linguagem de Consulta
Indexação
Agregação e Map/Reduce
Capped Collections
GridFS
Server-Side Scripting
Replicação: Master/Slave e Replica Sets
Arquitetura com Sharding
Auto-Sharding + Replicação
Suporte e Treinamento
Literatura
Quem está usando?

Published in: Technology

Introdução ao MongoDB

  1. 1. Introdução ao Rodrigo Hjort [email_address]
  2. 4. “ MongoDB (from "humongous") is a scalable, high-performance, open source, powerful, document-oriented database written in C++. ”
  3. 5. O modelo de dados Relacional (Tabular) Orientado a Documentos
  4. 6. Modelo Relacional
  5. 7. Modelo Orientado a Documentos
  6. 8. Um documento JSON { _id : ObjectId("5ebf5e0fec5fab7db2b9b40e"), title : "Introdução ao MongoDB", slug : "introducao-ao-mongodb", body : "Este é o texto do post...", published : true, created : "Jun 28 2011 13:48:22 GMT-0400 (AMT)", updated : "Jun 28 2011 17:01:15 GMT-0400 (AMT)", comments : [ { author : "Xunda", email : "xunda@dominio.com", body : "Caramba!", created : "Jun 28 2011 15:01:30 GMT-0300 (BRT)" } ] , tags : [ "databases", "MongoDB", "nosql" ] } Array Object ID Embedded Document
  7. 9. Tipos de Dados null regexp array string code float date boolean binary integer
  8. 10. lightweight traversable efficient
  9. 11. Embed vs Reference Embedded DBRef
  10. 12. Insert, Update, Delete INSERT INTO usuarios (nome, idade, ativo) VALUES ('xunda', 32, true) > db.usuarios.insert( {nome: “ xunda ” , idade: 32, ativo: true}) UPDATE usuarios SET idade = 28 WHERE nome = 'xunda' > db.usuarios.update({nome: “ xunda ” }, {nome: “ xunda ” , idade: 28, ativo: true}) DELETE FROM usuarios WHERE nome = “ xunda ” > db.usuarios.remove({nome: “ xunda ” }) DELETE FROM usuarios > db.usuarios.remove()
  11. 13. Modificadores Atômicos UPDATE posts SET hits = hits + 1 WHERE id = 999 > db.posts.update( { _id : new ObjectId("4c041e...30c093") }, { $inc : { "hits" : 1 }} ) UPDATE posts SET hits = 0 > db.posts.update({}, { $set : { "hits" : 0 }}) > db.posts.update({}, { $unset : { "hits" : 1 }}) > db.posts.update({title: "A blog post"}, {$push : {comments: { name: "joe", email: "joe@domain.com", content: "nice post."} }})
  12. 14. Linguagem de Consulta SELECT * FROM usuarios > db.usuarios.find() SELECT nome FROM usuarios > db.usuarios.find({}, { “ nome ” : 1}) SELECT * FROM usuarios WHERE idade = 29 > db.usuarios.find({ “ idade ” : 29}) SELECT * FROM usuarios WHERE idade = 29 AND ativo = true > db.usuarios.find({ “ idade ” : 29, “ ativo ” : true}) SELECT * FROM usuarios WHERE idade >= 18 AND idade <= 30 > db.usuarios.find({ “ idade ” : { “ $gte ” : 18, “ $lte ” : 30}}) SELECT * FROM usuarios WHERE nome LIKE “ %admin% ” > db.usuarios.find({ “ nome ” : /admin/i})
  13. 15. Linguagem de Consulta SELECT * FROM usuarios ORDER BY nome > db.usuarios.find().sort({ “ nome ” : 1}) SELECT * FROM usuarios ORDER BY idade DESC, nome > db.usuarios.find().sort({ “ idade ” : -1, “ nome ” : 1}) SELECT * FROM usuarios LIMIT 3 > db.usuarios.find().limit(3) SELECT * FROM usuarios OFFSET 5 > db.usuarios.find().skip(5) SELECT * FROM usuarios LIMIT 3 OFFSET 5 > db.usuarios.find().limit(3).skip(5) SELECT * FROM usuarios ORDER BY nome LIMIT 3 > db.usuarios.find().sort({ “ nome ” : 1}).limit(3)
  14. 16. Indexação ensureIndex() explain() hint() índice geoespacial Yes!!!
  15. 17. Agregação e Map/Reduce count() group() distinct() Map/Reduce
  16. 18. Capped Collections natural sort tailable cursors tail -f fila circular
  17. 19. GridFS mongofiles
  18. 20. Server-Side Scripting db.eval() system.js JavaScript
  19. 21. Replicação: Master/Slave
  20. 22. Replicação: Replica Sets
  21. 23. Sharding
  22. 24. Arquitetura com Sharding
  23. 25. Auto-Sharding + Replicação
  24. 26. 10gen.com mongodb.org Suporte e Treinamento
  25. 27. Literatura
  26. 28. Quem está usando?
  27. 29. Rodrigo Hjort [email_address] http://agajorte.blogspot.com &quot;If I had asked people what they wanted, they would have said faster horses.&quot; – Henry Ford

×