CouchDB的问题

CouchDB的问题,couchdb,Couchdb,在TAMA实现中,我遇到了Couchdb的一个问题。(版本1.2.0) 我们使用命名文档在应用程序中维护唯一的约束逻辑。(命名文档:其_id是用户定义的,而不是生成的。) 我们正在使用REST API将文档添加到Couchdb,在那里我们发现了奇怪的行为: 当我们尝试使用HTTP PUT重新创建文档时(由于代码中的错误),这些文档不是第一次创建的 HTTP Put - Returns HTTP 200, but doc is not saved in couchdb. Again trying

在TAMA实现中,我遇到了Couchdb的一个问题。(版本1.2.0)

我们使用命名文档在应用程序中维护唯一的约束逻辑。(命名文档:其_id是用户定义的,而不是生成的。)

我们正在使用REST API将文档添加到Couchdb,在那里我们发现了奇怪的行为:

当我们尝试使用HTTP PUT重新创建文档时(由于代码中的错误),这些文档不是第一次创建的

HTTP Put - Returns HTTP 200, but doc is not saved in couchdb. 
Again trying the same request, 
HTTP Put - Returns HTTP 200 and adds the doc in database.
HTTP PUT请求需要发送两次才能创建和保存文档

我已经检查了上述错误对于已删除的文档是可复制的,即GET _id的响应是{“error”:“not_found”,“reason”:“deleted”}


这在我看来像是CouchDB中的一个bug,您能告诉我们您是否能想到可能发生上述错误的任何场景以及任何可能的解决方法吗?

CouchDB有一个内置机制,以确保您不会覆盖与其他人相同的文档

如果您放入任何现有文档,您必须在该过程中附带当前的
doc.\u rev
值,以便couchdb可以确认您正在更新的文档基于数据库中的最新版本

我没有遇到过这种删除的情况,但对我来说,couchdb不应该允许您覆盖已删除的文档,因为您只是不知道删除


您是否尝试过是否可以访问已删除文档的修订版,如果可以,是否可以将其添加到新文档中,您是否可以成功完成第一次调用的PUT?

您是否尝试过使用更新版本的CouchDb?我也看到了这一点,这似乎有些奇怪。只有在压缩后才会发生。谢谢,但我无法获得已删除文档(很久以前已删除)的版本。。。有什么办法能到那里吗。。。