couchdb安装
sudo apt-get install erlang sudo apt-get install libmozjs185-dev libicu-dev
下载源码,编译安装
启动以后
进入管理界面
http://localhost:5984/_utils
数据的curd部分遵循restful模式,直接忽略,不过关于查询,由于文档型不太好弄关系处理,所以,添加了一个视图,用于map reduce的数据查询
在couchdb里面做map reduce查询不复杂,用于查询的view和一般的文档没有太大的区别,有两个地方不一样
必须以_design开头,必须有views字段,例如
{ "_id": "_design/articles", "_rev": "6-3d7568f84acd59d397e8b0e7f7add7eb", "language": "javascript", "views": { "all": { "map": "function(doc) { emit(doc.user_name, doc.money); }", "reduce": "function (key, values, rereduce) { return sum(values); }" }, "by_author_id": { "map": "function(doc) { if(doc.type == 'article') { emit([doc.user_name], doc); } }" } } }
假如说我有几个数据
{ "_id": "0c5df7ff242754705fb3355373001fca", "_rev": "5-e705b7220c11304fd2212d40b1258bce", "money": 100, "user_name": "猪头", "type": "article" } { "_id": "0c5df7ff242754705fb3355373002827", "_rev": "4-b9024f71db567187cc36cadbabecc580", "money": 200, "user_name": "白痴" }
对于all查询条件进行查询
map+reduce一起
curl http://127.0.0.1:5984/test_db/_design/articles/_view/all?group=true
光查map,不reduce
curl http://127.0.0.1:5984/test_db/_design/articles/_view/all?reduce=false
查询by_author_id条件
curl http://127.0.0.1:5984/test_db/_design/articles/_view/by_author_id?reduce=false
自己看看结果比对下
定义在couchdb里面查询脚本支持python,js,erlang,不过似乎js最简单点
关于replication
默认的couchdb是绑定的本地ip,需要改成0.0.0.0 目的数据库的database必须存在,否则会失败