Pouchdb更新设计文档给出“无效的rev格式”错误

时间:2016-05-04 19:44:36

标签: pouchdb

我想在PouchDB中存储用于过滤的设计文档,以用于角度应用。 PochDB将在浏览器中,然后(部分)将被复制到后端。

我的方法是:

  1. 使用所需的设计文档定义数组
  2. 初始化提供程序时,使用数组中的当前定义更新设计文档
  3. 但是当我尝试这样做时,即使我使用现有文档中的_rev值,我也会收到“无效的转换格式”错误。

    我的代码看起来像这样(其中POUCH_DESIGN_DOCS是设计文档的数组):

    POUCH_DESIGN_DOCS.forEach(function (designDoc) {
        db.get(designDoc._id)
          .then(function (originalDoc) {
            console.log('found design document with given id ' + designDoc._id);
            return db.put(designDoc, designDoc._id, originalDoc._rev); // throws error
          })
          .catch(function (err) {
            console.log('Adding new design document with id ' + designDoc._id);
            if (err.status === 404) {
              return db.put(designDoc);
            } else {
              console.error('Error while updating design document: ', err);
            }
          });
      });
    

    使用现有设计文档按预期解决获取承诺。然后,回调中的db.put调用将引发错误。

    我相信已应用此处描述的模式Create/update a document

    更新:我发现db.put在文档中可能没有._id,而在调用中将它作为参数(即使是tey)是相同的)。使用undefined作为第二个参数或从正在更新的文档中删除_id属性。

    更新2 :PouchDB将使用put弃用_id_rev的其他参数。因此,必须在文档上更新._rev属性以便将来证明。 (见PouchDB Issue 5154

0 个答案:

没有答案