Conhecendo o CouchDB

6.180 visualizações

Publicada em

Apresentação sobre o banco não relacional (NoSQL) CouchDB, sua API Rest, e funções de consulta Map/Reduce

0 comentários
3 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
6.180
No SlideShare
0
A partir de incorporações
0
Número de incorporações
94
Ações
Compartilhamentos
0
Downloads
73
Comentários
0
Gostaram
3
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Conhecendo o CouchDB

  1. 1. Conhecendo o Henrique Gogó - www.gogs.com.br
  2. 2. O que é o CouchDB
  3. 3. NoSQL
  4. 4. NoSQL Not only SQL
  5. 5. Alguns bancos de dados NoSQL
  6. 6. Por que CouchDB?
  7. 7. Por que CouchDB? OpenSource Livre de esquemas HTTP / REST JavaScript Escalabilidade Replicação
  8. 8. Um novo modelo: documentos No mundo real armazenamos dados em documentos
  9. 9. JSON
  10. 10. JSON
  11. 11. JSON
  12. 12. RESTful POST, GET, PUT e DELETE
  13. 13. RESTful POST, GET, PUT e DELETE basicamente um C.R.U.D. CREATE, READ, UPDATE e DELETE
  14. 14. Basicamente, mas não literalmente, ok?
  15. 15. Map / Reduce
  16. 17. Futon
  17. 18. E não é só isso...
  18. 19. Controle de usuário Validação CouchApp Nuvem
  19. 20. Entendendo um pouco mais
  20. 21. API RESTful
  21. 22. GET http://localhost:5984/ {"couchdb":"Welcome","version":"1.0.1"}
  22. 23. Criar banco de dados PUT http://localhost:5984/database {"ok":true}
  23. 24. PUT http://localhost:5984/database {"ok":true} PUT http://localhost:5984/database {"error":"file_exists","reason":"The database could not be created, the file already exists."}
  24. 25. Deletar banco de dados DELETE http://localhost:5984/database {"ok":true}
  25. 26. DELETE http://localhost:5984/database {"ok":true} DELETE http://localhost:5984/database {"error":"not_found","reason":"missing"}
  26. 27. Criar documento PUT http://localhost:5984/database/doc -d '{"nome":"Henrique","apelido":"Gogó"}' {"ok":true,"id":"doc","rev":"1-446a0c701e94053b4c3baaa5ef3fe68c"}
  27. 28. Criar documento gerando o id automaticamente POST http://localhost:5984/database/ -d '{"site":"http://www.gogs.com.br"}' -H "Content-Type: application/json" {"ok":true,"id":"468df12f72c2629fd9319b6dfd0009dd","rev":"1-0a48dec3e05fc52dae8b2943a4a55864"}
  28. 29. Ver documento GET http://localhost:5984/database/doc {"_id":"doc","_rev":"1-446a0c701e94053b4c3baaa5ef3fe68c","nome":"Henrique","apelido":"Gogu00f3"}
  29. 30. Atualizar documento PUT http://localhost:5984/database/doc -d '{"_rev":"1-446a0c701e94053b4c3baaa5ef3fe68c", "apelido":"Gogs"}' {"ok":true,"id":"doc","rev":"2-191182436ca9a532ec1124aa91b5a8da"}
  30. 31. Deletar documento DELETE http://localhost:5984/database/doc?rev=2-191182436ca9a532ec1124aa91b5a8da {"ok":true,"id":"doc","rev":"3-4c1033574d7d38e57fe92a1b51fc667d"}
  31. 32. Todos os dbs e docs GET http://localhost:5984/_all_dbs GET http://localhost:5984/database/_all_docs
  32. 33. Map Reduce
  33. 34. Map <ul><li>{&quot;total_rows&quot;:3,&quot;offset&quot;:0,&quot;rows&quot;:[ </li><ul><ul><li>{&quot;id&quot;:&quot;fc2636bf50556346f1ce46b4bc01fe30&quot;,&quot;key&quot;:&quot;Lena&quot;,&quot;value&quot;:25},
  34. 35. {&quot;id&quot;:&quot;1fb2449f9b9d4e466dbfa47ebe675063&quot;,&quot;key&quot;:&quot;Lisa&quot;,&quot;value&quot;:14},
  35. 36. {&quot;id&quot;:&quot;8ede09f6f6aeb35d948485624b28f149&quot;,&quot;key&quot;:&quot;Sarah&quot;,&quot;value&quot;:16} </li></ul></ul><li>]} </li></ul>
  36. 37. /database/_design/application/_view/ viewname?key=&quot;Lena&quot; {&quot;total_rows&quot;:3,&quot;offset&quot;:1,&quot;rows&quot;:[ {&quot;id&quot;:&quot;fc2636bf50556346f1ce46b4bc01fe30&quot;,&quot;key&quot;:”Lena”, &quot;value&quot;:25} ]}
  37. 38. Reduce <ul><li>{&quot;rows&quot;:[ </li><ul><li>{&quot;key&quot;:null,&quot;value&quot;:55} </li></ul><li>]} </li></ul>

×