无法删除,因为更新冲突的文件

问题描述:

这是我得到的文件,并检查新版本:无法删除,因为更新冲突的文件

curl http://localhost/cdb/characters/e6b153975174556adc0b344e9a000a7f?revs=true 

returns: 
{"_id":"e6b153975174556adc0b344e9a000a7f","_rev":"1-25b25539eca3944ef8d8f20748ed4902","name":"Barack Obama","position":"US President"} 

然后我尝试删除文档是这样的:

curl -X DELETE http://localhost/cdb/characters/e6b153975174556adc0b344e9a000a7f?rev=1-25b25539eca3944ef8d8f20748ed4902 

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

为什么,如果似乎没有修订的问题,删除时是否存在文档冲突?

删除没有其他修订的文档是否存在问题?

+0

没有当帮我,CouchDB的没有问题,删除文档时你的情况只有一个版本。这只会发生,如果有一个更新的版本。您正在使用哪个CouchDB版本?您的http请求似乎是正确的。 – awenkhh

首先,因为你的代码看起来正确的是,检查您的PARAMS实际上被发送。

否则,删除你应该检查是否修订标记:

curl -X GET http://127.0.0.1:5984/kina/ \ 
04ce1239166b841ae8a317897ec45b11?revs_info=true 
{ 
    "_id":"04ce1239166b841ae8a317897ec45b11", 
    "_rev":"3-bc27b6930ca514527d8954c7c43e6a09", 
    "_revs_info": 
    [ 
    { 
    "rev":"3-bc27b6930ca514527d8954c7c43e6a09", 
    "status":"available" 
    }, 
    { 
    "rev":"2-eec205a9d413992850a6e32678485900", 
    "status":"deleted" 
    }, 
    { 
    "rev":"1-967a00dff5e02add41819138abb3284d", 
    "status":"available" 
    } 
    ] 
} 

为了摆脱被删除的版本,你必须使用_purge。例如:

curl -X POST http://127.0.0.1:5984/kina/_purge/ \ 
    -H "content-type:application/json" \ 
    -d ’{"7341477ce373f9cc76f351e598001cdd": 
      ["2-5c7fb5dfeaf6f7cea149922fa1cdaf96"] 
     }’ 

{ 
    "purge_seq":1,"purged": 
    { 
    "7341477ce373f9cc76f351e598001cdd": 
    ["2-5c7fb5dfeaf6f7cea149922fa1cdaf96"] 
    } 
} 
+0

很奇怪,我通过发送请求的代理没有将参数附加到字符串的末尾。 :/ – Kristian

+0

啊 - 所以这是一个与沙发无关的问题,你做了一切正确;-) – awenkhh

+0

雅,抱歉浪费你的时间! :/ – Kristian

删除其拥有其他版本做一个DOC:
curl -X DELETE http://couchhost:5984/couchdb/docid\?rev\=rev_number

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