PouchDB过滤了来自couchDB的复制而不是过滤

时间:2017-03-26 05:05:42

标签: couchdb pouchdb

我的应用程序的旧版本正在将过时的文件上传到我的couchDB数据库。 这是我用于过滤的couchDB设计文档

"function(doc, req) {    
  if(doc._id === '_design/app') {
    return true;
  }
  if(doc._id.slice(0, 8) == '_design/') {
    return false;
  }
  if (doc.username === 'localUser' || !doc.username || doc._id == 'databaseversion') {
return false;
  }
}"

正如您所看到的,不应该排除没有用户名的文档。但其中一些仍在复制。下面是我在PouchDB中开始复制的方法。我是否需要将vocabcouchdb作为目标的src和localdb,以便使用vocabcouchdb上的设计文档来检查除了之前要过滤的内容?

syncObjWords = PouchDB.sync(localdb, vocabcouchdb, {
        live: true,
        retry: true,
        filter: 'app/reject_other_users_personal_words',
        query_params: {
          'username': $rootScope.globalUserData.username
        }
      }) 

1 个答案:

答案 0 :(得分:0)

我最终解决了这个问题。我认为这只是其他设备上的旧版本应用程序,具有不同的同步规则同步它们不应该的东西。为了解决这个问题,我为每个文档添加了一个syncVersion密钥。现在我可以按版本进行过滤,以便应用程序的旧安装不会同步过时的内容。