dim*_*ko1 1 javascript pouchdb
关于硬话题,我有一个非常简单的问题:
如何在PouchDB中解决冲突?
我查看了文档,以及快速谷歌搜索,但它没有帮助.那么,如何处理使用PouchDB的应用程序中的冲突管理?
以下是您在CouchDB中的使用方法,您可以将其直接转换为PouchDB术语,因为API完全相同.
你取一个文件,使用conflicts=true索要(冲突get()与{conflicts:true}在PouchDB):
http://localhost:5984/db1/foo?conflicts=true
Run Code Online (Sandbox Code Playgroud)
您收到这样的文档:
{
"_id":"foo",
"_rev":"2-f3d4c66dcd7596419c76b2498b3ba21f",
"notgonnawork":"this is from the second db",
"_conflicts":["2-c1592ce7b31cc26e91d2f2029c57e621"]
}
Run Code Online (Sandbox Code Playgroud)
从另一个数据库引入了冲突,该数据库的修订版已经(随机)获胜.如果您使用双向复制,则两个数据库都将提供相同的答案.
请注意,两个版本都以"2-"开头.这表明它们都是文档的第二个修订版,它们都位于修订树的同一级别.
使用修订ID,你取冲突版本(get()与{rev=...}在PouchDB:
http://localhost:5984/db1/foo?rev=2-c1592ce7b31cc26e91d2f2029c57e621
Run Code Online (Sandbox Code Playgroud)
你收到:
{
"_id":"foo",
"_rev":"2-c1592ce7b31cc26e91d2f2029c57e621",
"notgonnawork":"this is from the first database"
}
Run Code Online (Sandbox Code Playgroud)
在向用户呈现两个冲突的版本之后,您可以PUT(put())在这两个版本之上的第三个修订版本.您的第三个版本可以合并结果,选择输家或任何您想要的.
高级阅读:
| 归档时间: |
|
| 查看次数: |
1752 次 |
| 最近记录: |