couchdb的使用例子

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必须存在,否则会失败
时间: 2024-08-26 02:31:43

couchdb的使用例子的相关文章

couchdb

couchdb CouchDB是用Erlang开发的面向文档的数据库系统,CouchDB一种半结构化面向文档的分布式,高容错的数据库系统,其提供RESTFul HTTP/JSON接口,所以它一直倍受用户的青睐. 目录 1简介 2特性 应用场景 特色 3实现 4结构 5ACID 6View Server View Model JavaScript 1简介 CouchDB是用Erlang开发的面向文档的数据库系统,最近刚刚发布了1.0版本.CouchDB不是一个传统的关系数据库,而是面向文档的数据库

MongoDB与CouchDB 全方位对比

http://blog.nosqlfan.com/html/1519.html 本文见于MongoDB官方网站,MongoDB与CouchDB 很相似,他们都是文档型存储,数据存储格式都是JSON型的,都使用JavaScript进行操作,都支持Map/Reduce.但是其实二者有着很多本质的区别,本文透过现象追寻本质,让你更好的理解mongodb 与CouchDB.nosqlfan 翻译如下: 原文链接:Comparing Mongo DB and Couch DB 1.MVCC(Multive

MongoDB与CouchDB全方位对比(转)

出处:http://www.csdn.net/article/2011-03-21/294226 本文见于MongoDB官方网站,MongoDB与CouchDB很相似,他们都是文档型存储,数据存储格式都是JSON型的,都使用Javascript进行操作,都支持Map/Reduce.但是其实二者有着很多本质的区别,本文透过现象追寻本质,让你更好的理解MongoDB与CouchDB. 1.MVCC(Multiversion concurrency control) MongoDB与CouchDB的一

CouchDB学习-维护

官方文档 1 压缩 压缩操作是通过从数据库或者视图索引文件中移除无用的和老的数据减少硬盘使用空间.操作非常简单类似于其他数据库(SQLite等)管理系统. 在压缩目标期间,CouchDB将创建扩展名为.compact的新文件,并将仅实际数据传输到该文件中. 因此,CouchDB首先检查可用磁盘空间-它应比压缩文件的数据大两倍. 当所有实际数据都成功传输到压缩文件后,CouchDB用目标文件替换目标文件. 1.1 数据库压缩 数据库压缩通过删除更新期间创建的未使用的文件部分来压缩数据库文件. 旧文

Android小例子:使用反射机制来读取图片制作一个图片浏览器

效果图: 工程文件夹: 该例子可供于新手参考练习,如果有哪里不对的地方,望指正>-< <黑幕下的人> java代码(MainActivity.java): package com.example.imageswitchtest; import java.lang.reflect.Field; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.v

JSON 简单例子

代码: json [ { "title" : "a", "num" : 1 }, { "title" : "b", "num" : 1 }, { "title" : "c", "num" : 1 }] 例子1 js var box=[ { title:'a', num:1, height:177, }, { title:'b',

最简单的基于FFmpeg的AVDevice例子(读取摄像头)【转】

转自:http://blog.csdn.net/leixiaohua1020/article/details/39702113 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] libavdevice使用 注意事项 代码 结果 下载 =====================================================最简单的基于FFmpeg的AVDevice例子文章列表: 最简单的基于FFmpeg的AVDevice例子(读取摄像头) 最简单的基于FFm

Clustering by Passing Messages Between Data Points(Brendan J.Frey* and Delbert Dueck)例子

例1,数据点聚类:AP应用到25个二维数据中,使用负平法误差作为相似度  聚类数目不用预先指定 AP的一个优点是聚类数目不用预先指定,而是在消息传递方法中慢慢浮现,取决于输入参考度(preference),这种自动模型的选择,基于先验指定每一个数据点有多合适作为exemplar. 下图表示输入常量参考度对聚类数目的影响,这种关系近乎同样于在精确最小平方误差中的关系. 例2,人脸识别:使用优化标准为均方差,识别900张灰度图像   AP一致的能够实现更低的误差,在时间上花费要少于两个数量级. AP

Python之路42-socket介绍及简单例子

socket对数据的底层收.发做了封装 实现通信要通过IP+port 一个socket服务端和客户端实现的伪代码 # 发送端 # import socket # socket.TCP/IP # connect(a.ip,a.port) # socket.send("hello") # socket.recv() # socket.close() # 接收端 # import socket # socket.TCP/IP # listen(0.0.0.0,6969) # waiting(