我们有一个可以在其中使用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个项目?
答案 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一侧运行吹扫和压实