首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PouchDB +冲突解决

PouchDB +冲突解决
EN

Stack Overflow用户
提问于 2014-06-27 11:16:31
回答 1查看 2.8K关注 0票数 3

关于艰难的话题,我有一个非常简单的问题:

如何在PouchDB中解决冲突?

我查看了文档,并快速搜索,但这并没有帮助。那么,如何在使用PouchDB的应用程序中处理冲突管理呢?

EN

回答 1

Stack Overflow用户

发布于 2014-06-27 16:37:13

下面是如何在CouchDB中这样做的,您可以直接将其转换为PouchDB术语,因为API完全相同。

您可以获取一个文档,使用conflicts=true请求冲突(get()和PouchDB中的{conflicts:true} ):

代码语言:javascript
复制
http://localhost:5984/db1/foo?conflicts=true

你会收到这样的医生:

代码语言:javascript
复制
{
"_id":"foo",
"_rev":"2-f3d4c66dcd7596419c76b2498b3ba21f",
"notgonnawork":"this is from the second db",
"_conflicts":["2-c1592ce7b31cc26e91d2f2029c57e621"]
}

从另一个数据库中引入了一个冲突,该数据库的修订(随机)获胜。如果使用双向复制,两个数据库将提供相同的答案。

请注意,这两个修订版都以“2-”开头。这表明它们都是文档的第二个修订版,并且它们都处于修订树的同一级别。

使用修订ID,获取冲突的版本(get(){rev=...}在PouchDB中:

代码语言:javascript
复制
http://localhost:5984/db1/foo?rev=2-c1592ce7b31cc26e91d2f2029c57e621

你收到:

代码语言:javascript
复制
{
"_id":"foo",
"_rev":"2-c1592ce7b31cc26e91d2f2029c57e621",
"notgonnawork":"this is from the first database"
}

在向用户展示这两个相互冲突的版本之后,您可以在这两个版本的基础上编写第三个版本( PUT (put()) )。你的第三个版本可以组合结果,选择失败者,或者你想要的任何东西。

高级阅读:

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24450495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档