繁体   English   中英

PouchDb / CouchDb冲突问题

[英]PouchDb / CouchDb conflict issue

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

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

所以我在客户端上:

{_id:'mydoc',_ rev:'1-xxxxxxxxx'}和{_id:'mydoc',_ rev:'2-xxxxxxxxx'}

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

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

你有两个选择:

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

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

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

暂无
暂无

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

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