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"}
参考: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的简单使用相关推荐
- couchdb 视图操作_CouchDB简单应用
CouchDB是众多称作NoSQL解决方案中的一员.与众不同的是,CouchDB是一个面向文档的数据库,在它里面所有文档域(Field)都是以键值对的形式存储的.域(Field)可以是一个简单的键值对 ...
- NoSQL Databases - CouchDB
CouchDB还是蛮有意思的一个DB, 总结一下, 他重要的特点 1. 最大的特点就是他的file layout and commitment system, 并由此可以保证ACID特性, 在Nosq ...
- 【数据库架构】Apache Couchdb 最终一致性
1.3 最终一致性 在上一个文档"为什么选择CouchDB?"中,我们看到CouchDB的灵活性使我们能够随着应用程序的增长和变化而发展数据.在本主题中,我们将探讨CouchDB的 ...
- Bossie Awards 2013:最佳开源数据中心和云软件
当Facebook 的开源计算项目(OCP)酝酿着设计更好的服务器和网络时,其他开源项目也纷纷重塑数据库,应用平台以及下一代应用程序的虚拟化层.你还不知道吧,下一代的"云"基础设施 ...
- 寒冬之下持续吸金,蛰伏30年的国产数据库终迎黄金时代?
作者|真梓(微信ID:315159284) Ray(微信ID:raylazy) 编辑|石亚琼 把冷板凳坐热的不仅有国内的半导体企业,还有一众国产数据库厂商.36氪不久前统计,在2020-2021年获得 ...
- 15个nosql数据库
1.MongoDB 介绍 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.主要解决的是海量数据的访问效率问题,为WEB应用提供可扩展的高性能数据存储解决方案.当数据量达到50GB以上 ...
- 【DB宝46】NoSQL数据库之CouchBase简介、集群搭建、XDCR同步及备份恢复
文章目录 一. CouchBase概述 1.1.简述 1.2.CouchDB和CouchBase比对 1.2.1.CouchDB和CouchBase的相同之处 1.2.2.CouchDB和CouchB ...
- fabric 启动peer_Hyperledger fabric peer数据膨胀解决方案探讨
1. 问题场景 Fabric peer节点使用文件保存区块, 使用level db或couchdb数据库保存状态, 数据很多state db会膨胀, 我们探讨下一些解决方案. 2. couchdb集群 ...
- CouchDB 简单HTTP接口使用说明
目录 1.简介 2.安装 2.HTTP接口简单使用 2.1.认证接口 2.1.1 Basic Authentication 2.1.2 Cookie Authentication 2.2 创建与删除数 ...
最新文章
- 激光雷达选型指南 这2项重要指标却被很多人忽略
- c语言程序中cost的作用,C语言考试题基础版(21页)-原创力文档
- ffmpeg 如何把左右声道_耳机里的乾坤 | 左右声道?耳返?这些耳机常识,爱听音乐的你一定不会错过...
- linux内核优化哪些参数,linux内核参数优化 互联网技术圈 互联网技术圈
- Django后端编辑图片提取主要颜色API
- python面向对象类创建人物类包含姓名、职业_python面向对象类
- java 单例 性能_java程序性能优化之设计优化---单例pk
- thinkphp5 后台多选删除_TP5(thinkPHP框架)实现后台清除缓存功能示例
- CMake笔记3构建复杂项目
- 计算机学院篮球赛主题,计算机学院称雄中国科大2011年学生篮球赛
- VRay Next for SketchUp 赋予材质常见问题
- 最难忘的一节计算机课,难忘的一堂课作文(共10篇)
- QQ机器人{协议篇}
- php 调用 com组件,进行word操作,详情步骤
- 计算机主机关不了,电脑无法关机怎么办_电脑正常关机关不了如何解决
- Gym - 100502G Outing (强连通缩点+树形依赖背包)
- matlab图形黎曼几何,张思容
- Windows系统如何部署Rabbit和启动Rabbit服务
- 点对点聊天和多对点聊天程序的详尽阐述
- css对于字体和背景等属性的控制