我正在努力避免在我的CouchDB中积累修改,这样我就可以使用TouchDB的“批量拉取”进行复制(它在所有第一轮都会批量拉取)。为了让所有文档保持在rev-1版本,只删除一个文档,然后重新创建它,而不是修改它,这是不是一种糟糕的做法?
发布于 2012-05-27 16:00:44
在CouchDB中删除文档不会重置_rev。
CouchDB从不删除文档,它只是将最后一个修订标记为已删除。压缩将删除以前的修订,只保留最后的修订。这是复制正常工作所必需的。这就是为什么删除的文档修订版不应该包含任何数据,而应该只包含文档的_id和_deleted标志。
完全删除已删除文档的任何痕迹的唯一方法是将所有文档复制到新数据库中。但请记住复制的后果。
发布于 2012-05-27 11:17:03
我想说你的求婚让我觉得很脏,但这不是一个很好的答案。
你提到了TouchDB和批量拉取,所以你有一个可以在外部修改数据的移动应用程序,我假设你想要能够修改它自己的数据。所以我能想到的最大的问题是更新冲突解决方案。即。当客户端脱机时,如何在客户端和服务器上处理对文档的更改。我想你会开始做大量的同步工作,沙发应该为你处理……
https://stackoverflow.com/questions/10766002
复制相似问题