我正在使用couchbDb作为远程主数据库。我正在使用pouchDb将其复制到浏览器中。然后进行实时同步,以便我的远程主数据库中的任何更改都可以在浏览器中同步。随着所有插入/更新更改事件被触发,文档得到更新。但是,当我在master中删除文档时,删除未同步,浏览器不会触发“更改”事件。
我在这里想念什么吗?
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);
});
似乎您正在基于视图的map函数进行过滤的复制。在这种情况下,如果您对文档执行DELETE操作,则文档内容将被删除,因此过滤器所需的信息将丢失,并且该信息不会包含在已过滤的更改流中。
使用过滤的复制,应通过更新包含属性"_deleted":true
的文档来删除文档。在这种情况下,文档内容将被保留,并且可以包含在过滤后的变更流中。