使用远程 couchdb 删除,不会触发相应的 pouchDB 更改事件

With remote couchdb delete, corresponding pouchDB change event not triggered

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

这里有什么我遗漏的吗?

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);
   });

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

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