具有许多修订版本的CouchDb数据库

时间:2018-11-04 18:09:19

标签: ionic3 couchdb pouchdb

我们有一个可以在其中使用PouchDb并将CouchDb用作数据库服务器的应用程序。数据库之一的修订版本过多。它有839个文档,但是当我与应用程序同步时,它会插入8500个项目(某些文档的修订版本超过300个)。我正在四处张望,我以为我必须在pouchdb中使用revs_limit,但是它不起作用。

this.db = new PouchDB(perfil.profile.bd, 
                     {auto_compaction: true,revs_limit:10}
);

我也尝试过auto_compaction,但这不能解决我的问题。

是否可以在服务器端(在ouchdb中)删除修订,以避免我的应用同步超过8000个项目?

1 个答案:

答案 0 :(得分:0)

从CDB复制时,与PDB端的revs_limit没有关系-它只影响在PDB中本地创建和维护的文档,而不影响服务器。 将所需的数字放在_revs_limit CDB端点上。 在我的代码中,它的工作方式如下:

CDB.setRevsLimit = (dbName, limit)=> {
  return new Promise((resolve, reject)=> {
    let payload = putOptions;
    payload.path = dbName + '/_revs_limit';
    let req = http.request(payload, (res) => {
      let data = '';
      res.setEncoding('utf8');
      res.on('data', (chunk)=> {data += chunk})
      res.on('end', ()=> {
        if (res.statusCode === 200) {
          return resolve('setRevsLimit_done')
        } else {
          return reject(res.statusCode + ': ' + data)
        }
      })
    });
    req.on('error', (err)=> {return reject('CDB.setRevsLimit ERR: ' + err)})
    req.write(JSON.stringify(limit));
    req.end();
  })
};

您可能要在CDB一侧运行吹扫和压实