我是第一次使用pouchDB,并且正如文档中所示,我使用put(),因此它会自动处理修订。但是,当代码运行并且现有项目具有相同的ID时,即使包含_rev,它仍然会拒绝。
这是我的代码:
var db = new PouchDB('blog')
...
function saveCategory(category) {
var savedCategory = {
_id: 'category' + category.id,
_rev: '2-' + String(new Date().toISOString()),
name: category.name,
nicename: category.slug,
post_count: category.count,
description: category.description,
link: category.link,
parent: category.parent
}
return db.put(savedCategory).then((response) => {
$log.log(response)
}).catch((error) => {
$log.error('error saving category ',error)
})
}
答案 0 :(得分:1)
这不是_rev
字段的目的。它始终由服务器生成,而不是由您的代码生成。要更新文档,您必须提取整个文档(包括_rev
字段),更新所需的字段,然后放入文档。 _rev
的值应与从服务器获取时的值相同。
如果您有新记录,则无需设置_rev
。