pouchdb db.allDocs返回id而不是_id

时间:2016-10-30 14:13:08

标签: pouchdb

我尝试使用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而不返回整个文档?或者有更好的方法来做我正在做的事情吗?

0 个答案:

没有答案