我对CouchDB比较陌生,在node.js中使用cradle与它进行接口。我试图在文档中包含一个"count"字段,并创建一个递增的更新处理程序,这样我就不必先执行GET,然后再执行PUT。目前,我在创建db对象之后就这样定义它:
db.save('_design/main', {
updates: {//Not sure I'm doing this right. Documentation isn't clear to me
updateCount:
function (doc) {
if (!doc.count) {
doc.count = 0;
}
doc.rowImportCount++;
return [doc, JSON.stringify(doc.count)];
}
},
findByFileUuid: {
map: function (doc) {
...view stuff, works perfectly fine...
},
reduce: '_sum'
}
}
稍后在程序中,当我尝试更新计数时,我会这样做:
db.update('main/updates/updateCount',fileUuid,{},function(res){
console.log(res.message);
});
但它不起作用。res.message表示"点未定义"。
我看不出我做错了什么,couchdb或cradle的文档都没有太大帮助。请注意,没有我的计数更新尝试,一切都很好。
谢谢!
这种方式对我有效:
db.update('main/updateCount', fileUuid, { rev: doc._rev }, function(res){
console.log(res.message);
});
或
db.update('main/updateCount', fileUuid, { }, function(res){
console.log(res.message);
});