conhecendo o couchdb

24
Conhecendo o Henrique Gogó - www.gogs.com.br

Upload: henrique-gogo

Post on 15-Jun-2015

5.440 views

Category:

Documents


1 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Conhecendo o CouchDB

Conhecendo o

Henrique Gogó - www.gogs.com.br

Page 2: Conhecendo o CouchDB

Bancos de dados NoSQL

Page 3: Conhecendo o CouchDB

Por que CouchDB?

EscalabilidadeReplicaçãoMaster/MasterMVCC (Multiversion concurrency control)

Schema freeHTTP / RESTfulJavaScript

Page 4: Conhecendo o CouchDB

Futon

Page 5: Conhecendo o CouchDB

Controle de usuário

Validação

CouchApp

Nuvem

Page 6: Conhecendo o CouchDB

API RESTful

Page 7: Conhecendo o CouchDB

JSON

Page 8: Conhecendo o CouchDB

GET http://localhost:5984/

{"couchdb":"Welcome","version":"1.0.1"}

Page 9: Conhecendo o CouchDB

Criar banco de dados

PUT http://localhost:5984/database

{"ok":true}

Page 10: Conhecendo o CouchDB

Deletar banco de dados

DELETE http://localhost:5984/database

{"ok":true}

Page 11: Conhecendo o CouchDB

Criar documento

PUT http://localhost:5984/database/doc-d '{"nome":"Henrique","apelido":"Gogó"}'

{"ok":true,"id":"doc","rev":"1-446a0c701e94053b4c3baaa5ef3fe68c"}

Page 12: Conhecendo o CouchDB

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"}

Page 13: Conhecendo o CouchDB

Ver documento

GET http://localhost:5984/database/doc

{"_id":"doc","_rev":"1-446a0c701e94053b4c3baaa5ef3fe68c","no

me":"Henrique","apelido":"Gog\u00f3"}

Page 14: Conhecendo o CouchDB

Atualizar documento

PUT http://localhost:5984/database/doc-d '{"_rev":"1-446a0c701e94053b4c3baaa5ef3fe68c",

"apelido":"Gogs"}'

{"ok":true,"id":"doc","rev":"2-191182436ca9a532ec1124aa91b5a8da"}

Page 15: Conhecendo o CouchDB

Deletar documento

DELETE http://localhost:5984/database/doc?rev=2-

191182436ca9a532ec1124aa91b5a8da

{"ok":true,"id":"doc","rev":"3-4c1033574d7d38e57fe92a1b51fc667d"}

Page 16: Conhecendo o CouchDB

MapReduce

Page 17: Conhecendo o CouchDB

Map

function(doc) { if (doc.city == "Fortaleza") emit(doc.title, doc.month+"/"+doc.year);}

Page 18: Conhecendo o CouchDB

Map

Page 19: Conhecendo o CouchDB
Page 20: Conhecendo o CouchDB

Map

Page 21: Conhecendo o CouchDB

Reduce

function(keys, values) { return values;}

Page 22: Conhecendo o CouchDB

Reduce

Page 23: Conhecendo o CouchDB

Reduce

Page 24: Conhecendo o CouchDB