【问题标题】:With remote couchdb delete, corresponding pouchDB change event not triggered使用远程 couchdb 删除,未触发相应的 pouchDB 更改事件
【发布时间】:2020-01-14 19:56:19
【问题描述】:

我使用 couchDb 作为远程主数据库。我正在使用 pouchDb 将其复制到浏览器中。然后进行实时同步,以便我的远程主数据库中的任何更改都会在浏览器中同步。触发所有插入/更新更改事件并更新文档。但是当我在主文件中删除一个文档时,删除不同步,而不是事件“更改”事件在浏览器中被触发。

这里有什么我遗漏的吗?

this.db.replicate.from(this.remoteDb, {
  view: this.remoteView,
});

this.db
  .sync(this.remoteDb, {
     live: true,
     retry: true,
     pull: true,
     push: false,
     view: this.remoteView,
   })
   .on("change", info => {
        console.log("change from sync", info);
   });

【问题讨论】:

    标签: typescript couchdb pouchdb


    【解决方案1】:

    您似乎正在根据视图的地图功能进行过滤复制。 在这种情况下,如果您对文档执行 DELETE,则会删除文档内容,因此过滤器所需的信息会丢失,并且不会包含在过滤的更改流中。

    使用过滤复制,您应该通过更新包含属性"_deleted":true 的文档来删除文档。在这种情况下,文档内容会被保留,并且可以包含在过滤后的更改流中。

    【讨论】:

      猜你喜欢
      • 2017-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-26
      • 2021-08-24
      相关资源
      最近更新 更多