如何过滤PockDB和couchdb之间的复制

如何过滤PockDB和couchdb之间的复制,couchdb,ionic2,pouchdb,Couchdb,Ionic2,Pouchdb,我有服务器端的couchdb和移动应用程序的PockDB。我希望每个用户根据参考号(参考号)获得自己的数据。我已经尝试过过滤它,但是没有数据同步到couchdb。我遵循PockDB/couchdb文档中的步骤。但是我不知道我遵循的步骤是否正确。如果我犯了错误,请指导我。下面是我在客户端的代码 constructor(public http: Http, public settingProvider:SettingProvider) { this.db = new PouchDB('task

我有服务器端的couchdb和移动应用程序的PockDB。我希望每个用户根据参考号(参考号)获得自己的数据。我已经尝试过过滤它,但是没有数据同步到couchdb。我遵循PockDB/couchdb文档中的步骤。但是我不知道我遵循的步骤是否正确。如果我犯了错误,请指导我。下面是我在客户端的代码

constructor(public http: Http, public settingProvider:SettingProvider) {

  this.db = new PouchDB('task');

}


initializeRemote(url,ref_no){

  this.remote = url + '/task';

  let options = {
    live: true,
    retry: true,
    filter:'task/byRef_no',
    query_params: {'ref_no':ref_no}
  };

  this.db.sync(this.remote, options)
    .on('change', function(change){
      console.log('InspectionTask provider change!', change);
    })
    .on('paused', function(info){
      console.log('InspectionTask provider paused!', info);
    })
    .on('active', function(info){
      console.log('InspectionTask provider active!', info);
    })
    .on('error', function(err){
      console.log('InspectionTask provider error!', err)
    });
}
这是服务器端的过滤器

{
  _id: '_design/task',
  filters: {
    myfilter: function (doc, req) {
      return doc.ref_no === req.query.ref_no;
    }
  }
}

在PockDB复制配置中指定的筛选器不是设计文档中指定的筛选器

您正在尝试使用:
筛选器:'task/byRef\u no'
进行筛选

实际上,您的筛选器名称是
myfilter

你应该有这样的东西:

let options = {
    live: true,
    retry: true,
    filter:'task/myfilter',
    query_params: {'ref_no':ref_no}
  };

我已经更改了过滤器的名称,但结果相同。我仍然无法将数据与筛选器同步。如果我取下过滤器,一切正常。对不起。在你的帮助下,我已经做了一些改变。谢谢