gpt4 book ai didi

javascript - PouchDB + 冲突解决

转载 作者:行者123 更新时间:2023-11-30 08:02:30 28 4
gpt4 key购买 nike

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

PouchDB 中如何解决冲突?

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

最佳答案

这是在 CouchDB 中的实现方式,您可以直接将其转换为 PouchDB 术语,因为 API 完全相同。

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

http://localhost:5984/db1/foo?conflicts=true

您收到这样的文档:

{
"_id":"foo",
"_rev":"2-f3d4c66dcd7596419c76b2498b3ba21f",
"notgonnawork":"this is from the second db",
"_conflicts":["2-c1592ce7b31cc26e91d2f2029c57e621"]
}

存在从另一个数据库引入的冲突,并且该数据库的修订已(随机)获胜。如果您使用双向复制,两个数据库都会提供相同的答案。

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

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

http://localhost:5984/db1/foo?rev=2-c1592ce7b31cc26e91d2f2029c57e621

您收到:

{
"_id":"foo",
"_rev":"2-c1592ce7b31cc26e91d2f2029c57e621",
"notgonnawork":"this is from the first database"
}

在向用户呈现两个冲突版本后,您可以PUT (put()) 在这两个版本之上进行第三次修改。您的第三个版本可以组合结果、选择输家或任何您想要的。

进阶阅读:

关于javascript - PouchDB + 冲突解决,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24450495/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com