modelando aplica§£o em documento - mongodb

Download Modelando aplica§£o em documento - MongoDB

Post on 25-May-2015

4.204 views

Category:

Documents

3 download

Embed Size (px)

TRANSCRIPT

  • 1. Modelando aplicao em documento

2. Thiago Avelino@avelino0 www.avelino.usthiagoavelinoster@gmail.c om 3. O que MongoDB? Banco de dados no relacional; Orientado a documentos; Alta Performance; Escalavel; Schema Aberto Open Source 4. Quem utiliza? Github; Foursquare; bit.ly; Zynga; T Dispatch; Apontador; Globo.com; Entre outros... 5. Onde usar? web 2.0 Migrations Flexibilidade Cache 6. Drivers C, C++ Erlang Java JavaScript Python Ruby Relao completa em:http://www.mongodb.org/display/DOCS/Drivers 7. Modelo de documento{nome: Thiago Avelino,empresa: Mochii,pais: Londres} 8. Modelo de documento{nome: Thiago Avelino,empresa: Mochii,pais: Londres}Sim um JSON.Fcil de trabalhar com esse modelo de dados na maioria das linguagens deprogramao 9. Migrations possvel fazer mudana dinamica em umdocumento 10. Migrations possvel fazer mudana dinamica em umdocumento{nome: ThiagoAvelino,empresa: Mochii,local: Londres} 11. Migrations possvel fazer mudana dinamica em umdocumento{nome: ThiagoAvelino,empresa: Mochii,local: Londres} 12. Migrations possvel fazer mudana dinamica em umdocumento{nome: Thiago {nome: ThiagoAvelino,Avelino,empresa: Mochii, cargo: engenheiro delocal: Londres}software, empresa: Mochii, local: Londres} 13. Migrations possvel fazer mudana dinamica em umdocumento{nome: Thiago {nome: ThiagoAvelino,Avelino,empresa: Mochii, cargo: engenheiro delocal: Londres}software, empresa: Mochii, local: Londres} Adicionado mais um campo sem mexer em modelagem 14. Agregadoresdb.cadastro.insert({local:Berlin})db.cadastro.insert({local:Londres})db.cadastro.insert({local:Brasil})db.cadastro.insert({local:Berlin}) 15. Agregadoresdb.cadastro.insert({local:Berlin})db.cadastro.insert({local:Londres})db.cadastro.insert({local:Brasil})db.cadastro.insert({local: db.cadastro.distinct(locaBerlin}) l) 16. Agregadoresdb.cadastro.insert({local:Berlin})db.cadastro.insert({local:Londres})db.cadastro.insert({local:Brasil}) db.cadastro.distinct(locadb.cadastro.insert({local: l)Berlin}) 17. Agregadoresdb.cadastro.insert({local:Berlin})db.cadastro.insert({local:Londres})db.cadastro.insert({local:Brasil}) db.cadastro.distinct(locadb.cadastro.insert({local: l)Berlin}) [Berlin, Londres, Bras il] 18. Map/ReduceUtilizado para criar funes dentro doMongoDB Escrito em JavaScript 19. Map/ReduceExemplo Salas = [_id, nome]Reservas = [_id, sala_id, dat a] Descobrir o numero da reserva https://gist.github.com/2782117 20. map = function () {emit(this.sala_id, [1]);}reduce = function (sala, values) {var sum = 0;if (values) {for (var i = 0; i < values.length; i++) {sum += 1;}}return sum;} 21. Map/ReduceExemplo db.reservas.mapReduce(map, reduce, {"out":"resultado"})db.resultado.find({}){ "_id": ObjectId("4fbd6e69700f6e1266000002"),"value": 1}{ "_id": ObjectId("4fbd6e69700f6e1266000004"),"value": 2} 22. ndiceO Conceito similar a bancosrelacionais, exemplo MySQLdb.colecao.ensureIndex({nome:1})db.colecao.ensureIndex({endereco.cep: 1}) 23. ndiceLista dos os ndice criado: db.colecao.getIndex () 24. ndicendice unicodb.colecao.ensureIndex({nome:1, sobrenome: 1}, unique: true});db.colecao.insert({nome:jane,sobrenome:doe}); // okdb.colecao.insert({nome:jane,sobrenome:doe}); // dupkeyerrordb.colecao.insert({nome:jane,sobrenome:smith});// ok 25. GridFSArmazenamento de arquivos binrios dentro do MongoDB (At 4MB) Maior controle de permisso de acesso;http://www.mongodb.org/display/DOCS/GridFS 26. GridFSArmazenamento de arquivos binrios dentro do MongoDB (At 4MB) Maior controle de permisso de acesso;http://www.mongodb.org/display/DOCS/GridFS 27. GridFS HTTPAplica Fileosystem 28. GridFS HTTP HTTPGridFSAplica Aplicaoo 29. Replica SetsAplicaoNode #1Node #2 Replica 30. Replica SetsAplicaoNode #1Node #2Node #3 Replica 31. Replica SetsAplicaoNode #1Node #2Node #3 Replica 32. Shardinga-de-t u-zNode #1Node #2 Node #3 33. Modelar aplicao 34. Casos prticosQuase tudo no mesmodocumento 35. Casos prticosQuase tudo no mesmodocumento 4MB 36. Casos prticos Dividindo aplicao emCollectionsNo fcil controlar muitas ObjID 37. Casos prticos Como estamos hoje? 38. Cloud 39. Cloud 40. Suporte ComercialMarcello Baquero - marcello@10gen.com http://www.10gen.com/support 41. Obrigado!Perguntas?Thiago Avelino@avelino0 www.avelino.usthiagoavelinoster@gmail.c