Обработчики обновлений Couchdb

Далее: обработчики обновления документов CouchDB (обновления на месте) и 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

Я не очень понимаю, что я делаю неправильно, если я уберу '_', я получу:

{"ошибка":"конфликт","причина":"Конфликт обновления документа."}

Спасибо


person fjbelchi    schedule 20.09.2011    source источник


Ответы (1)


Ваша просьба неверна, я думаю. Попробуйте что-то вроде этого:

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']}"
    }
}
person djc    schedule 20.09.2011