conhecendo o couchdb
DESCRIPTION
Apresentação sobre o banco não relacional (NoSQL) CouchDB, sua API Rest, e funções de consulta Map/ReduceTRANSCRIPT
Conhecendo o
Henrique Gogó - www.gogs.com.br
Bancos de dados NoSQL
Por que CouchDB?
EscalabilidadeReplicaçãoMaster/MasterMVCC (Multiversion concurrency control)
Schema freeHTTP / RESTfulJavaScript
Futon
Controle de usuário
Validação
CouchApp
Nuvem
API RESTful
JSON
Deletar banco de dados
DELETE http://localhost:5984/database
{"ok":true}
Criar documento
PUT http://localhost:5984/database/doc-d '{"nome":"Henrique","apelido":"Gogó"}'
{"ok":true,"id":"doc","rev":"1-446a0c701e94053b4c3baaa5ef3fe68c"}
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"}
Ver documento
GET http://localhost:5984/database/doc
{"_id":"doc","_rev":"1-446a0c701e94053b4c3baaa5ef3fe68c","no
me":"Henrique","apelido":"Gog\u00f3"}
Atualizar documento
PUT http://localhost:5984/database/doc-d '{"_rev":"1-446a0c701e94053b4c3baaa5ef3fe68c",
"apelido":"Gogs"}'
{"ok":true,"id":"doc","rev":"2-191182436ca9a532ec1124aa91b5a8da"}
Deletar documento
DELETE http://localhost:5984/database/doc?rev=2-
191182436ca9a532ec1124aa91b5a8da
{"ok":true,"id":"doc","rev":"3-4c1033574d7d38e57fe92a1b51fc667d"}
MapReduce
Map
function(doc) { if (doc.city == "Fortaleza") emit(doc.title, doc.month+"/"+doc.year);}
Map
Map
Reduce
function(keys, values) { return values;}
Reduce
Reduce