Обработчики обновлений Couchdb - PullRequest
2 голосов
/ 20 сентября 2011

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

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

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

Спасибо

1 Ответ

3 голосов
/ 20 сентября 2011

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

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']}"
    }
}
...