我想在PouchDB中存储用于过滤的设计文档,以用于角度应用。 PochDB将在浏览器中,然后(部分)将被复制到后端。
我的方法是:
但是当我尝试这样做时,即使我使用现有文档中的_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)