一、安装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"}

参考:https://andrewlocatelliwoodcock.wordpress.com/2011/05/11/curl-returning-invalid-utf-8-json-error-from-couchdb-on-windows-although-json-is-correct/

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

3.https://andrewlocatelliwoodcock.wordpress.com/2011/05/11/curl-returning-invalid-utf-8-json-error-from-couchdb-on-windows-although-json-is-correct/

转载于:https://www.cnblogs.com/flythinking/p/8043569.html

CouchDB的简单使用相关推荐

  1. couchdb 视图操作_CouchDB简单应用

    CouchDB是众多称作NoSQL解决方案中的一员.与众不同的是,CouchDB是一个面向文档的数据库,在它里面所有文档域(Field)都是以键值对的形式存储的.域(Field)可以是一个简单的键值对 ...

  2. NoSQL Databases - CouchDB

    CouchDB还是蛮有意思的一个DB, 总结一下, 他重要的特点 1. 最大的特点就是他的file layout and commitment system, 并由此可以保证ACID特性, 在Nosq ...

  3. 【数据库架构】Apache Couchdb 最终一致性

    1.3 最终一致性 在上一个文档"为什么选择CouchDB?"中,我们看到CouchDB的灵活性使我们能够随着应用程序的增长和变化而发展数据.在本主题中,我们将探讨CouchDB的 ...

  4. Bossie Awards 2013:最佳开源数据中心和云软件

    当Facebook 的开源计算项目(OCP)酝酿着设计更好的服务器和网络时,其他开源项目也纷纷重塑数据库,应用平台以及下一代应用程序的虚拟化层.你还不知道吧,下一代的"云"基础设施 ...

  5. 寒冬之下持续吸金,蛰伏30年的国产数据库终迎黄金时代?

    作者|真梓(微信ID:315159284) Ray(微信ID:raylazy) 编辑|石亚琼 把冷板凳坐热的不仅有国内的半导体企业,还有一众国产数据库厂商.36氪不久前统计,在2020-2021年获得 ...

  6. 15个nosql数据库

    1.MongoDB 介绍 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.主要解决的是海量数据的访问效率问题,为WEB应用提供可扩展的高性能数据存储解决方案.当数据量达到50GB以上 ...

  7. 【DB宝46】NoSQL数据库之CouchBase简介、集群搭建、XDCR同步及备份恢复

    文章目录 一. CouchBase概述 1.1.简述 1.2.CouchDB和CouchBase比对 1.2.1.CouchDB和CouchBase的相同之处 1.2.2.CouchDB和CouchB ...

  8. fabric 启动peer_Hyperledger fabric peer数据膨胀解决方案探讨

    1. 问题场景 Fabric peer节点使用文件保存区块, 使用level db或couchdb数据库保存状态, 数据很多state db会膨胀, 我们探讨下一些解决方案. 2. couchdb集群 ...

  9. CouchDB 简单HTTP接口使用说明

    目录 1.简介 2.安装 2.HTTP接口简单使用 2.1.认证接口 2.1.1 Basic Authentication 2.1.2 Cookie Authentication 2.2 创建与删除数 ...

最新文章

  1. 激光雷达选型指南 这2项重要指标却被很多人忽略
  2. c语言程序中cost的作用,C语言考试题基础版(21页)-原创力文档
  3. ffmpeg 如何把左右声道_耳机里的乾坤 | 左右声道?耳返?这些耳机常识,爱听音乐的你一定不会错过...
  4. linux内核优化哪些参数,linux内核参数优化 互联网技术圈 互联网技术圈
  5. Django后端编辑图片提取主要颜色API
  6. python面向对象类创建人物类包含姓名、职业_python面向对象类
  7. java 单例 性能_java程序性能优化之设计优化---单例pk
  8. thinkphp5 后台多选删除_TP5(thinkPHP框架)实现后台清除缓存功能示例
  9. CMake笔记3构建复杂项目
  10. 计算机学院篮球赛主题,计算机学院称雄中国科大2011年学生篮球赛
  11. VRay Next for SketchUp 赋予材质常见问题
  12. 最难忘的一节计算机课,难忘的一堂课作文(共10篇)
  13. QQ机器人{协议篇}
  14. php 调用 com组件,进行word操作,详情步骤
  15. 计算机主机关不了,电脑无法关机怎么办_电脑正常关机关不了如何解决
  16. Gym - 100502G Outing (强连通缩点+树形依赖背包)
  17. matlab图形黎曼几何,张思容
  18. Windows系统如何部署Rabbit和启动Rabbit服务
  19. 点对点聊天和多对点聊天程序的详尽阐述
  20. css对于字体和背景等属性的控制

热门文章

  1. swell word
  2. ADSL modern 的常用密码
  3. 计算机电源功率计算,电源功率怎么计算?
  4. 基于CC2530的zIgbee传感器无线数据采集系统开发(部分关键源码)
  5. 大B、小B、码率计算
  6. [基础服务] [数据库] ClickHouse的安装和配置
  7. VC2005操作Word
  8. 学生考勤管理系统(优秀评分)
  9. 加速及控制精灵移动,加速计值的处理
  10. 手动生成MyEclipse注册码及序列号(源代码)