我尝试使用db.allDocs
进行查询,然后将结果(数千个文档)传递给db.bulkDocs
进行删除。该功能不会从数据库中删除文档。当我从db.allDocs
检查结果的控制台输出时,每个文档ID都是id
而不是_id
。
db.allDocs({
// include_docs: true, //commented out because i don't need whole doc
startkey: 'transaction_' + accInfo._id + '_',
endkey: 'transaction_' + accInfo._id + '_\uffff'
}).then(function (result) {
console.log('results.....', result.rows)
result.rows.map(function (result) {
result._deleted = true;
});
db.db.bulkDocs(result.rows, function(err, response) {
if (err) {
return console.log('there was an err', err);
} else {
console.log(response, 'Documents deleted Successfully');
}
});
});
来自here的文件:
options.include_docs:将文档本身包含在每行中 doc领域。否则,默认情况下,您只能获得_id和_rev 属性。
但我没有收到文件_id
,我得到id
。
如果我设置include_docs: true
,我会得到相应的_id
,但我不需要整个文档,如果我返回整个文档,我必须执行以下操作才能使其正常工作:
db.allDocs({
include_docs: true,
startkey: 'transaction_' + accInfo._id + '_',
endkey: 'transaction_' + accInfo._id + '_\uffff'
}).then(function (result) {
console.log('results.....', result.rows)
let docs = [];
result.rows.map(function (result) {
result.doc._deleted = true;
docs.push(result.doc)
});
db.db.bulkDocs(docs, function(err, response) {
if (err) {
return console.log('there was an err', err);
} else {
console.log(response, 'Documents deleted Successfully');
}
});
});
使用pouchdb版本:6.0.6
有没有办法让db.allDocs
返回_id
而不返回整个文档?或者有更好的方法来做我正在做的事情吗?