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

CouchDb Database with many revisions

我们有一个应用程序可以在其中使用 PouchDb 并将 CouchDb 作为数据库服务器。一个数据库随着太多的修订而增长。它有 839 个文档,但是当我与应用程序同步时,它会插入 8500 个项目(有些文档有超过 300 个修订版)。我环顾四周,我想我必须在 pouchdb 中使用 revs_limit,但它不起作用。

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

我也试过 auto_compaction 但这并没有解决我的问题。

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

当涉及到从 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 端清除和压缩