Couchdb PockDB bulkdocs不';如果以前删除过文档,请不要使用{new_edits:false}重新添加该文档

Couchdb PockDB bulkdocs不';如果以前删除过文档,请不要使用{new_edits:false}重新添加该文档,couchdb,pouchdb,Couchdb,Pouchdb,本地数据库与远程沙发同步。远程验证会根据某些规则引发未经授权的错误。当发生denied事件时,我编写了以下代码来获取远程文档并在本地复制它,以便将本地文档更改恢复到服务器上的状态- function processUnauthorizedError(err, self) { const { doc: { error, id } = {} } = err; if (error !== "unauthorized") { return; } // Replace/inser

本地数据库与远程沙发同步。远程验证会根据某些规则引发未经授权的错误。当发生
denied
事件时,我编写了以下代码来获取远程文档并在本地复制它,以便将本地文档更改恢复到服务器上的状态-

function processUnauthorizedError(err, self) {
  const { doc: { error, id } = {} } = err;
  if (error !== "unauthorized") {
    return;
  }

  // Replace/insert remote doc into local
  // https://stackoverflow.com/a/34570061/2790937
  return self.remoteDB.get(id, {revs: true})
    .then(doc => {
      Logger.log({doc});
      return self.localDB.bulkDocs([doc], {new_edits: false})
    })
    .then((result) => {
      Logger.log({result}); // Empty array, see https://github.com/pouchdb/pouchdb/issues/5775
      return notifyUnauthorized(id, self)
    })
}
此策略基于此建议-。 但是,如果文档是在本地删除的,则localdb
bulkDocs
操作不会将其重新插入。它完成时没有错误,并返回空数组,这是本期的预期结果-。为了确认没有插入文档,我在本地执行了后续的
allDocs
以及
get

有什么建议吗

代码运行在最新的Chrome(81)中,并使用最新的PockDB(PockDB浏览器)7.1.1