PouchDb / CouchDb冲突问题

时间:2016-08-09 09:20:18

标签: couchdb pouchdb

我正在将PouchDb与CouchDb后端一起使用,并在网站启动时在客户端上,我在同一个“id'”中插入文档(在数据库同步之前)。作为服务器中的文档。

这很好,因为它是同一个文档但是PouchDb文档是_rev:1而couchDb文档可能是_rev:2,当我的PouchDb确实同步并且我试图再次获取文档时得到冲突。

所以我随后在客户端上:

{_id:' mydoc',_rev:' 1-xxxxxxxxx'和。和 {_id:' mydoc',_rev:' 2-xxxxxxxxx' }

但正确的版本实际上是_rev:1(因为这是客户端首次创建的版本)。

如何在客户端上正确解决此问题,以便解决冲突?

1 个答案:

答案 0 :(得分:0)

您有两种选择:

首先,创建具有不同ID的文档。这取决于应用;也许这不可能或不适合你的情况。

其次,你需要代码来删除"错误"修订文件。 (您可以在客户端或服务器上执行此操作。在这两种情况下,更新都将复制到另一个系统。)

例如,如果您的客户端应用程序知道修订版1是正确的,那么当您看到有冲突的修订版时,请删除除正确修订版之外的所有修订版。那些删除操作将复制到CouchDB,很快您将只有一个正确的版本。