CouchDB的简单使用
一、安装CouchDB
到官网下载CouchDB,在windows下安装CouchDB较为简单,略过。
安装完后,确认CouchDB在运行,然后在浏览器访问http://127.0.0.1:5984/,正常情况不网页上显示
{
"couchdb":"Welcome",
"version":"2.1.1",
"features":[
"scheduler"
],
"vendor":{
"name":"The Apache Software Foundation"
}
}
与CouchDB交互:
1.访问http://127.0.0.1:5984/_utils/去加载Fauxton,通过Fauxton可与CouchDB交互
2.使用curl实用程序和CouchDB交互
安装curl实用程序。如果下载的是安装版curl默认情况下会自动配置环境变量,如果是解压版请自行配置环境变量(即把安装目录的bin路径添加到path下)。完成后在cmd中输入curl,有正常反应则表示安装成功
二、CouchDB
1.创建数据库
由于通过Fauxton操作CouchDB比较简单,这里不详细介绍这种方法。主要介绍通过curl操作CouchDB。
可以通过使用PUT方法通过curl实用程序向服务器发送HTTP请求,在CouchDB中创建数据库。
curl -X PUT http://127.0.0.1:5984/albums
CouchDB返回:
{"ok":true}
这样一个名为albums的数据库就创建成功。-X是告诉curl发送什么请求(GET、PUT、DELETE、POST)。默认情况是发送GET请求。如
curl -X GET http://127.0.0.1:5984
与
curl http://127.0.0.1:5984
效果是一样的。如果想知道请求响应的详细信息可加上-v(例如:curl -vX GET)。
2.删除数据库
curl -X DELETE http://127.0.0.1:5984/albums
CouchDB返回:
{"ok":true}
3.创建文档
curl -X PUT http://127.0.0.1:5984/albums/6e1295ed6c29495e54cc05947f18c8af -d '{"title":"There is Nothing Left to Lose","artist":"Foo Fighters"}'
6e1295ed6c29495e54cc05947f18c8af是文档id(建议用UUID或GUID)。-d后面是请求要发送的数据,要求Field-Value对的形式。
如果你没有UUID可通过curl -X GET http://127.0.0.1:5984/_uuids获得。如果你需要更多UUID,可以通过?count=10参数获得10个UUID,或者获取你想要的数目。
CouchDB返回:
{"ok":true,"id":"6e1295ed6c29495e54cc05947f18c8af","rev":"1-2902191555"}
rev,表示修订ID。 每次修改(更新或修改)文档时,CouchDB都会生成_rev值。如果要更新或删除文档,CouchDB希望您包括要更改的版本的_rev字段。此机制用于确保并发控制。
注意:在windows下创建文档应这样输入:
curl -X PUT http://127.0.0.1:5984/albums/6e1295ed6c29495e54cc05947f18c8af -d "{\"title\":\"There is Nothing Left to Lose\",\"artist\":\"Foo Fighters\"}"
否则会报如下错误:
{"error":"bad_request","reason":"invalid UTF-8 JSON"}
3.更新文档
可通过curl -X GET http://127.0.0.1/albums/6e1295ed6c29495e54cc05947f18c8af查到修订版本id再执行
curl -X PUT http://127.0.0.1:5984/albums/6e1295ed6c29495e54cc05947f18c8af \
-d '{"_rev":"1-2902191555","title":"There is Nothing Left to Lose","artist":"Foo Fighters","year":"1997"}'
_rev为从文档中查出来的修订版本id。
CouchDB返回
{"ok":true,"id":"6e1295ed6c29495e54cc05947f18c8af","rev":"2-8aff9ee9d06671fa89c99d20a4b3ae"}
4.删除文档
curl -X DELETE http://127.0.0.1:5984/albums/6e1295ed6c29495e54cc05947f18c8af?rev=4-d56957735aa2d7f352044103f39912c9
CouchDB返回
{"ok":true,"id":"6e1295ed6c29495e54cc05947f18c8af","rev":"5-5c8ce4ce0709421945867b0e05cb19c4"}
验证删除:
curl -X GET http://127.0.0.1:5984/albums/6e1295ed6c29495e54cc05947f18c8af
CouchDB返回
{"error":"not_found","reason":"deleted"}
5.附加文件
curl -X PUT http://127.0.0.1:5984/albums/6e1295ed6c29495e54cc05947f18c8af/artwork.jpg?rev=3-1b29c1219b6d80a8f7ded1ddfebb69ed --data-binary @E:\artwork.jpg -H "Content-Type:image/jpg"
上述命令通过PUT请求将E:\artwork.jpg附加到albums/6e1295ed6c29495e54cc05947f18c8af中,并命名为artwork.jpg。--data-binary @是告诉curl读文件内容到HTTP请求体, -H告诉CouchDB,我们上传的是JPEG文件。
CouchDB返回
{"ok":true,"id":"6e1295ed6c29495e54cc05947f18c8af","rev":"4-d56957735aa2d7f352044103f39912c9"}
可通过http://127.0.0.1:5984/albums/6e1295ed6c29495e54cc05947f18c8af/artwork.jpg访问附加文件。
再次请求文档
curl http://127.0.0.1:5984/albums/6e1295ed6c29495e54cc05947f18c8af
CouchDB返回
{
"_id": "6e1295ed6c29495e54cc05947f18c8af",
"_rev": "3-131533518",
"title": "There is Nothing Left to Lose",
"artist": "Foo Fighters",
"year": "1997",
"_attachments": {
"artwork.jpg": {
"stub": true,
"content_type": "image/jpg",
"length": 52450
}
}
}
参考链接:
1.http://docs.couchdb.org/en/2.1.1/intro/tour.html
2.http://docs.couchdb.org/en/2.1.1/intro/api.html
CouchDB的简单使用的更多相关文章
- CouchDB简单应用
CouchDB是众多称作NoSQL解决方案中的一员.与众不同的是,CouchDB是一个面向文档的数据库,在它里面所有文档域(Field)都是以键值对的形式存储的.域(Field)可以是一个简单的键值对 ...
- CouchDB学习-介绍
官方文档 CouchDB 1文档存储 CouchDB服务器主机是一个存储文档的数据库.每一个文档在数据库中都有唯一的名字.CouchDB提供RESTful HTTP API用来读取和更新(添加,编辑, ...
- Couchbase 环境搭建与使用(C#)
Couchbase Couchbase Server (前身是 Membase) 是一个分布式的面向文档的 NoSQL 数据库管理系统,该系统联合了 CouchDB 的简单和可靠以及 Memcache ...
- Couchbase入门——环境搭建以及HelloWorld
一.引言 NoSQL(Not Only SQL),火了很久了,一直没空研究.最近手上一个项目对Cache有一定的要求,借此机会对NoSQL入门一下.支持NoSQL的数据库系统有很多, 比如Redis ...
- CNCF CloudNative Landscape
cncf landscape CNCF Cloud Native Interactive Landscape 1. App Definition and Development 1. Database ...
- NoSQL数据库 Couchbase Server - 分布式缓存
Couchbase Server (前身是 Membase) 是一个分布式的面向文档的 NoSQL 数据库管理系统,该系统联合了 CouchDB 的简单和可靠以及 Memcached 的高性能以及 M ...
- CNCF LandScape Summary
CNCF Cloud Native Interactive Landscape 1. App Definition and Development 1. Database Vitess:itess i ...
- 【DB宝46】NoSQL数据库之CouchBase简介、集群搭建、XDCR同步及备份恢复
目录 一. CouchBase概述 1.1.简述 1.2.CouchDB和CouchBase比对 1.2.1.CouchDB和CouchBase的相同之处 1.2.2.CouchDB和CouchBas ...
- CouchDB 简单HTTP接口使用说明
目录 1.简介 2.安装 2.HTTP接口简单使用 2.1.认证接口 2.1.1 Basic Authentication 2.1.2 Cookie Authentication 2.2 创建与删除数 ...
随机推荐
- spring boot 测试插件使用及result风格实例1&打包启动
本节主要内容: 1:spring boot 小插件使用 2:构建第一个简单的result风格的实例并访问 3:将项目打成jar包后启动并访问. 一:添加boot devtools插件: 执行完成后,查 ...
- dbSNP|n SwissVar|n CanProVar|CHPP|mutation assessor|
癌症蛋白质基因组学主要研究driver性质的突变,该突变有可能是转化为癌基因的突变.抑癌基因突变.药物位点突变和蛋白突变,可以使用mutation assessor 预测突变 突变导致疾病,修饰仅影响 ...
- kafka + spark Streaming + Tranquility Server发送数据到druid
花了很长时间尝试druid官网上说的Tranquility嵌入代码进行实时发送数据到druid,结果失败了,各种各样的原因造成了失败,现在还没有找到原因,在IDEA中可以跑起,放到线上就死活不行,有成 ...
- 用Spring Tool Suite简化你的开发
如果你是一个喜欢用spring的人,你可能会在欣赏spring的强大功能外,对其各样的配置比较郁闷,尤其是相差较大的版本在配置文件方面会存在差异,当然你可以去花不少的时间去网上查找相关的资料,当你准备 ...
- LNOI 2019 旁观记
真.懵逼. 退役选手进队了......我忽然后悔自己没去摸鱼...... 但是想一想毕竟有三分之一限制,我也搞不过那帮大佬...... 毕竟zhx还提前一周复习了一下呢 挂一个zhx大佬的博客 传送门 ...
- 二评北科团委:“斩首计划”进行时,其用心也毒
近日,在同学们和热心群众的共同努力下,各高校相继悬崖勒马,北大马会.北语新新青年.人大新光等进步社团均顺利注册.而北科团委倒行逆施,可谓一枝独秀,对于齐民学社的同学们的诉求,不仅不予以回应,反而采取表 ...
- C++对数组进行复制
C++ 风格的复制操作 使用STL中的copy算法 int a[] = {1,2,3,4,5}; int b[5]; std::copy(std::begin(a),std::end(a),std:: ...
- Web前端性能
6.1前端性能示例 性能测试工具: Apache Benchmark(ab)得到的响应时间仅为从请求发出开始到接收到HTML的最后一个字节所消耗的全部时间.ab命令行如下: ab -c [并发用户数] ...
- LG_2051_[AHOI2009]中国象棋
题目描述 这次小可可想解决的难题和中国象棋有关,在一个N行M列的棋盘上,让你放若干个炮(可以是0个),使得没有一个炮可以攻击到另一个炮,请问有多少种放置方法.大家肯定很清楚,在中国象棋中炮的行走方式是 ...
- 企业级rancher搭建Kubernetes(采用rancher管理平台搭建k8s)
一.简介 Rancher简介 来源官方:https://www.cnrancher.com/ Rancher是一个开源的企业级容器管理平台.通过Rancher,企业再也不必自己使用一系列的开源软件去从 ...