Couchdb更新处理程序

时间:2011-09-20 09:23:51

标签: couchdb handlers

关注:CouchDB Document Update Handlers (in-place updates)http://wiki.apache.org/couchdb/Document_Update_Handlers

我正在尝试创建自己的函数,现在增加一个整数,但我得到了:

{“error”:“bad_request”,“reason”:“附件名称不能以'_'开头”}

我的设计文档如下:_design / db

  "check": {
        "increment": "function(doc,req){ var channel = req.query.channel; doc.channels[0].sp = doc.channels[0].sp+1;  return[channel, 'check']}"
    }

请求如下:

curl -X PUT https://server/db/_design/db/_check/increment/channels?channel=foo

我不太清楚我做错了什么,如果我删除'_'我会得到:

{“错误”:“冲突”,“原因”:“文档更新冲突。”}

由于

1 个答案:

答案 0 :(得分:3)

我认为你的要求是错误的。尝试这样的事情:

curl -X PUT https://server/db/_design/db/_update/increment/channels?channel=foo

其次,您的更新处理函数应该直接在设计文档中的“更新”键中(因此不能作为任何视图的一部分)。因此,您的设计文档应如下所示:

{
    "_id": "_design/doc",
    "updates": {
        "increment": "function(doc,req){ var channel = req.query.channel; doc.channels[0].sp = doc.channels[0].sp+1;  return[channel, 'check']}"
    }
}