如何从 Angularjs 中的多个 PouchDB 同步 CouchDB?

How to sync CouchDB from multiple PouchDB in Angularjs?

我正在开发 angular 应用程序。如何在不丢失任何信息的情况下使多个 PouchDB 同步到单个 CouchDB?

如果你的意思是创建多个 PouchDB 实例,那么你必须为每个 PouchDB 实例创建它们各自的监听器,指向你想要的远程数据库(有问题的 CouchDB)。

听众的这个例子对我有用:

var sync = PouchDB.sync('mydb', 'http://localhost:5984/mydb', {
  live: true,
  retry: true
}).on('change', function (info) {
  // handle change
}).on('paused', function (err) {
  // replication paused (e.g. replication up to date, user went offline)
}).on('active', function () {
  // replicate resumed (e.g. new changes replicating, user went back online)
}).on('denied', function (err) {
  // a document failed to replicate (e.g. due to permissions)
}).on('complete', function (info) {
  // handle complete
}).on('error', function (err) {
  // handle error
});

您需要通过过滤器进行复制

  1. 在 CouchDB 中为每个客户端数据库创建过滤器;
  2. 通过过滤器从 CouchDB 开始 replication 到客户端(查看名为 filter 的复制选项)
  3. 开始将所有文档从客户端复制到每个客户端数据库的 CouchDB。

您可以找到所需的一切here(示例 3、4)