解决Pouch Couch DB

时间:2014-11-28 17:00:43

标签: javascript couchdb pouchdb nosql

我正在开发一个离线工作的原型网站,该网站使用Pouch DB,以便在服务器上线时同步回CouchDB。

Pouch DB conflicts guide说:

  

要解决冲突,您可以在当前获胜者的基础上添加()新修订版。

你是怎么做到的?我尝试了以下功能,但都没有按预期工作:

function (current, chosen) {
    chosen._rev = current._rev;
    chosen._conflicts = [];
    db.put(chosen);
};

function (chosen) {;
    db.put(chosen);
};

top函数需要两个文档:

  • 当前获胜者的文件
  • 用户选择成为新赢家的文件。

我已经在某些地方(like here)读到删除丢失的冲突是必要的,但如果可能的话我宁愿不删除任何内容,而且Pouch DB指南也没有提到这一点。

1 个答案:

答案 0 :(得分:7)

你是对的;你需要删除失败的冲突(听起来不那么令人讨厌)。我编写指南时犯了一个错误;除非您删除冲突,否则冲突仍然存在。

顺便说一句,删除冲突的修订只是意味着添加一个"墓碑"在他们之上。所以真的没有什么东西被删除"除非您明确压缩数据库。 PouchDB和CouchDB都是这种情况。

修改:我修复了文档。 在任何情况下,您能否请更新指南以反映您需要删除任何不需要的冲突修订的事实?我们喜欢拉动请求,特别是那些亲自处理过这种东西的人! :)需要修改的文档是this one