具有许多修订版的 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 端清除和压缩
我们有一个应用程序可以在其中使用 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 端清除和压缩