繁体   English   中英

CouchDB的问题

[英]Issue with 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 the same request, 
HTTP Put - Returns HTTP 200 and adds the doc in database.

需要发送两次HTTP PUT请求才能创建和保存文档。

我检查了上述错误对于已删除的文档是否可复制,即GET _id的响应为{“错误”:“ not_found”,“原因”:“已删除”}。

对我来说,这似乎是CouchDB中的错误,如果您能想到可能发生上述错误的任何情况以及任何可能的解决方法/解决方案,请告诉我们。

Couchdb具有内置机制,可确保您不会覆盖其他人的同一文档。

如果您放入任何现有文档,则必须在此过程中附带当前的doc._rev值,以便doc._rev可以确认您要更新的文档是基于数据库中的最新版本。

我没有遇到过带有删除的情况,但是对我来说,couchdb不应允许您按照假设应该覆盖已删除的文档,而您只是不知道删除。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM