博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
curl操作CouchDB
阅读量:6002 次
发布时间:2019-06-20

本文共 3230 字,大约阅读时间需要 10 分钟。

couchdb 服务器地址: 127.0.0.1

端口:5984

添加数据库

  • 连接到couchdb

    curl -X GET http://127.0.0.1:5984

    {"couchdb":"Welcome","uuid":"1c81fc63d761c82c4f48bac34afd5eb8","version":"1.6.0","vendor":{"name":"The Apache Software Foundation","version":"1.6.0"}}

  • 创建一个数据库db1

    curl -X PUT http://127.0.0.1:5984/db1

    {"ok":true}

  • 创建数据库 db2

    curl -X PUT http://127.0.0.1:5984/db2

    {"ok":true}

  • 列出当前所有的数据库

    curl -X GET http://127.0.0.1:5984/_all_dbs

    ["_replicator","_users","db1","db2"]

  • 删除db2数据库

    curl -X DELETE http://127.0.0.1:5984/db2

    {"ok":true}

    删除成功

数据库操作

  • 向数据库添加数据

    首先,获取一个uuid 

    curl -X GET http://127.0.0.1:5984/_uuids 
    {"uuids":["1925a2a284289df9b55b390525001ca1"]} 
    注意:每次得到的uuid不一样。 
    获取10个uuid: curl -X GET http://127.0.0.1:5984/_uuids?count=10

    使用uuid作为键插入一条数据 

    curl -X PUT http://127.0.0.1:5984/db1/1925a2a284289df9b55b390525001ca1 -d '{"title":"test","content":"this is test!"}' 
    {"ok":true,"id":"1925a2a284289df9b55b390525001ca1","rev":"1-4d3e6350fdcc39f7b482c4cab8ff5d9a"}

  • 更新记录

    curl -X PUT http://127.0.0.1:5984/db1/1925a2a284289df9b55b390525001ca1 -d '{"title":"test","content":"this is test!modifyied!"}'

    {"error":"conflict","reason":"Document update conflict."} 

    失败了。因为,couchdb是按版本提交的,同一个源提交多次会造成一定的混乱。所以,其采用了版本进行控制。

    curl -X PUT http://127.0.0.1:5984/db1/1925a2a284289df9b55b390525001ca1 -d '{"_rev":"1-4d3e6350fdcc39f7b482c4cab8ff5d9a","title":"test","content":"this is test!"}'

    {"ok":true,"id":"1925a2a284289df9b55b390525001ca1","rev":"2-f6f24194b29981316f2412e288cda320"} 

    这样就没有问题了。

  • 获取记录

    curl -X GET http://127.0.0.1:5984/db1/1925a2a284289df9b55b390525001ca1

    {"_id":"1925a2a284289df9b55b390525001ca1","_rev":"2-f6f24194b29981316f2412e288cda320","title":"test","content":"this is test!"}

  • 列出db1库下的所有文档

    curl -X GET http://127.0.0.1:5984/db1/_all_docs

    {"total_rows":2,"offset":0,"rows":[ 

    {"id":"1925a2a284289df9b55b390525001ca1","key":"1925a2a284289df9b55b390525001ca1","value":{"rev":"2-f6f24194b29981316f2412e288cda320"}}, 
    {"id":"1925a2a284289df9b55b390525002c29","key":"1925a2a284289df9b55b390525002c29","value":{"rev":"1-4a1158c264f8cc636e1fc54a7a696de6"}} 
    ]}

  • 删除记录

    curl -X DELETE http://127.0.0.1:5984/db1/1925a2a284289df9b55b390525001ca1?rev=2-f6f24194b29981316f2412e288cda320

上传附件

curl -X PUT http://127.0.0.1:5984/db1/40dab8a067c56aef572307dd1f0119c8 -d '{"title":"test","content":"this is test!"}' 

curl -X PUT http://127.0.0.1:5984/db1/40dab8a067c56aef572307dd1f0119c8/atwork.jpg?rev=2-2739352689 --data-binary @atwork.jpg -H "Content-Type:image/jpg" 
atwork.jpg是当前目录下的图片文件。

数据库复制

    • 本地复制

      curl -X PUT http://127.0.0.1:5984/albums-replica 

      curl -X POST http://127.0.0.1:5984/_replicate -d '{"source":"albums","target":"albums-replica"}' -H "Content-Type: application/json"

    • 本地到远端复制

      curl -X POST http://127.0.0.1:5984/_replicate -d '{"source":"albums","target":"http://example.org:5984/albums-replica"}' -H "Content-Type:application/json"

      如果远端服务器有密码,可以采用这种格式:http://username:pass@remotehost:5984/demo

    • 远端到本地

      curl -X POST http://127.0.0.1:5984/_replicate -d '{"source":"http://example.org:5984/albums-replica","target":"albums"}' -H "Content-Type:application/json"

    • 远端到远端

      curl -X POST http://127.0.0.1:5984/_replicate -d '{"source":"http://example.org:5984/albums","target":"http://example.org:5984/albums-replica"}' -H "Content-Type: application/json"

本文github地址:

欢迎补充

转载地址:http://indmx.baihongyu.com/

你可能感兴趣的文章
getElementsByName 的应用-获取radio button组的选择值
查看>>
协同过滤的基本思想
查看>>
extjs grid grouping 关闭和展开
查看>>
C#以管理员权限运行源码,C#软件获取管理员权限,c#获取管理员权限
查看>>
android关闭屏幕时不锁屏实现
查看>>
阅读笔记《孙鑫-VC++深入详解》
查看>>
C#中各种集合类比较
查看>>
Sql Server合并多行询数据到一行:使用自连接、FOR XML PATH('')、STUFF或REPLACE函数...
查看>>
浅谈Java中的final关键字
查看>>
Insertion Sort
查看>>
[设计模式]<<设计模式之禅>>关于迪米特法则
查看>>
[Luogu3806]点分治
查看>>
HDU4288 Coder
查看>>
关于深度学习的历史
查看>>
Linux系统GEDIT编译运行C++
查看>>
ASP.NET MVC学前篇之Ninject的初步了解
查看>>
归并两个有序的数组
查看>>
lsof,ulimit,
查看>>
Navicat For Mysql 数据库备份与还原
查看>>
Win10远程桌面 出现 身份验证错误,要求的函数不受支持,这可能是由于CredSSP加密Oracle修正 解决方法...
查看>>