Javascript b+;冲突解决

Javascript b+;冲突解决,javascript,pouchdb,Javascript,Pouchdb,关于这个难题,我有一个非常简单的问题: 冲突解决在数据库中是如何工作的 我查看了文档,也快速地用谷歌搜索了一下,但没用。那么,如何在使用PockDB的应用程序中处理冲突管理呢?以下是如何在CouchDB中处理冲突的,您可以直接将其转换为PockDB术语,因为API完全相同 获取文档时,使用conflicts=true请求冲突(get()与数据库中的{conflicts:true}): 您将收到如下文档: { "_id":"foo", "_rev":"2-f3d4c66dcd7596419c76b

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

冲突解决在数据库中是如何工作的


我查看了文档,也快速地用谷歌搜索了一下,但没用。那么,如何在使用PockDB的应用程序中处理冲突管理呢?

以下是如何在CouchDB中处理冲突的,您可以直接将其转换为PockDB术语,因为API完全相同

获取文档时,使用
conflicts=true
请求冲突(
get()
与数据库中的
{conflicts:true}
):

您将收到如下文档:

{
"_id":"foo",
"_rev":"2-f3d4c66dcd7596419c76b2498b3ba21f",
"notgonnawork":"this is from the second db",
"_conflicts":["2-c1592ce7b31cc26e91d2f2029c57e621"]
}
另一个数据库引入了冲突,该数据库的修订版(随机)获胜。如果使用双向复制,两个数据库将提供相同的答案

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

使用修订ID,在数据库中获取冲突版本(
get()
,与
{rev=…}
):

http://localhost:5984/db1/foo?conflicts=true
http://localhost:5984/db1/foo?rev=2-c1592ce7b31cc26e91d2f2029c57e621
您将收到:

{
"_id":"foo",
"_rev":"2-c1592ce7b31cc26e91d2f2029c57e621",
"notgonnawork":"this is from the first database"
}
将两个冲突的版本呈现给用户后,您可以将第三个版本置于这两个版本之上。您的第三个版本可以组合结果、选择输家或任何您想要的内容

高级阅读:


感谢您的回答。但问题更多-当您开启实时复制时如何同步项目?有关实时复制期间冲突解决的教程,请参阅: