0

我试图避免在我的 CouchDB 中建立修订,因此我可以使用 TouchDB 的“批量拉动”进行复制(它在所有 1st-revs 上批量拉动。)仅删除文档会是不好的做法吗?重新创建它而不是修改它,以便所有文档都保持在 rev-1?

4

2 回答 2

0

好吧,我想说你的提议让我觉得很脏,但这不是一个很好的答案,所以..

你提到了 TouchDB 和批量拉取,所以你有一个可以在外部修改数据的移动应用程序,我假设希望能够修改它自己的数据。所以我能想到的最大问题是更新冲突解决方案。IE。当客户端脱机时,如何处理客户端和服务器上文档的更改。我认为您将开始不得不做很多沙发本应为您处理的同步工作。

于 2012-05-27T03:17:02.817 回答
0

删除 CouchDB 中的文档,不会重置 _rev。

CouchDB 从不删除文档,它只是将最后一个修订标记为已删除。压缩将删除以前的修订,只保留最后一个。这是复制正常工作所必需的。这就是为什么文档的已删除修订不应包含任何数据,而应仅包含文档的 _id 和 _deleted 标志。

完全删除已删除文档的任何痕迹的唯一方法是将所有文档复制到新数据库。但请记住复制的后果。

于 2012-05-27T08:00:43.587 回答