Mar*_*oli 0 couchdb cloudant ibm-cloud
我有一个在 IBM Bluemix 中运行的 Java 应用程序,它使用 Cloudant (couchdb) 数据库作为服务。我在该数据库中有一个无法删除的文档,因为 Cloudant 在我尝试时返回 409 冲突错误。但是,当我查询冲突时,它没有报告任何内容:
$ curl 'https://<user>-bluemix:<pass>@<host>-bluemix.cloudant.com/<dbname>/e4eca7af-cb27-4b1e-b738-31abcf880680?conflicts=true'
{
"_id": "e4eca7af-cb27-4b1e-b738-31abcf880680",
"_rev": "13887-a24ecaf2f6e628903e294b11e73d8ca8",
...[other stuff but no _conflicts section]
}
Run Code Online (Sandbox Code Playgroud)
当我尝试删除它时:
$ curl -i -X DELETE 'https://<user>-bluemix:<pass>@<host>-bluemix.cloudant.com/<dbname>/e4eca7af-cb27-4b1e-b738-31abcf880680?_rev=13887-a24ecaf2f6e628903e294b11e73d8ca8'
HTTP/1.1 409 Conflict
X-Couch-Request-ID: 02286a98ac
Server: CouchDB/1.0.2 (Erlang OTP/R14B)
Date: Wed, 15 Apr 2015 12:35:00 GMT
Content-Type: text/plain;charset=utf-8
Content-Length: 58
Cache-Control: must-revalidate
Strict-Transport-Security: max-age=31536000
X-Content-Type-Options: nosniff;
{"error":"conflict","reason":"Document update conflict."}
Run Code Online (Sandbox Code Playgroud)
这是一个已被删除和重新创建多次的文档(这就是 _rev 计数变得如此之高的原因)。通常它工作正常,但它时不时地进入这种冲突状态。我发现我可以通过 Cloudant Web 界面删除它,但似乎不能通过 REST 界面删除它。但是一旦我删除它,它就可以正常工作一段时间,然后问题又回来了。
那么为什么当我尝试删除时它会说存在冲突,但它不会告诉我与 'conflicts=true' 参数的冲突是什么?我也试过 '_deleted_conflicts=true' 这也没有显示任何内容。
它是如何进入这种状态的,我如何才能防止它在未来发生?
你需要说?rev=,不要?_rev=正确地通过修订。
http://docs.couchdb.org/en/1.6.1/api/document/common.html#delete--db-docid
| 归档时间: |
|
| 查看次数: |
2053 次 |
| 最近记录: |