CouchDB:如何使用_revs_diff获取文档修订版ID

时间:2012-11-01 14:22:42

标签: couchdb

我尝试测试couchDB的_revs_diff api以获取文档修订版。这是我使用的命令

curl -X POST http://******:******@localhost:5984/grocery-sync/_revs_diff -H "Content-type:application/json" 

结果是

{"error":"unknown_error","reason":"badarg"}

有谁知道原因?

1 个答案:

答案 0 :(得分:4)

根据CouchDB wiki page,如果给定文档的修订无效,_revs_diff将返回一个值。没有给出使用curl的示例。

查看this mailing list posting问题似乎是您需要包含文档和修订信息,如下所示:

$ curl -X POST -H "Content-type:application/json" \
   http://*:*@localhost:5984/grocery-sync/_revs_diff \
   -d '{"0d63eac0ca9a37daa062b23853a4cf4d":["1-e9e4e9c76323a267ff4f780f9f979b9f", "12-3286453e55eb2c401bc194670075f942"]}'

字典键(0d63...cf4d)是文档ID,数组是修订版ID。在此示例中,数据库中存在两个修订版本(1-...12-...),因此响应为

{}

如果我提供缺少的修订版ID(我发明了一个):

$ curl -X POST -H "Content-type:application/json"  \
  http://*:*@localhost:5984/grocery-sync/_revs_diff \
  -d '{"0d63eac0ca9a37daa062b23853a4cf4d":["1-abcdef"]}'

回复是

{"0d63eac0ca9a37daa062b23853a4cf4d":{"missing":["1-abcdef"]}}