2

以下: CouchDB ドキュメント更新ハンドラー (インプレース更新)およびhttp://wiki.apache.org/couchdb/Document_Update_Handlers

今のところ整数をインクリメントする独自の関数を作成しようとしていますが、次のようになります。

{"error":"bad_request","re​​ason":"添付ファイル名を '_' で開始することはできません"}

私の設計ドキュメントは次のようになります: _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

「_」を削除すると、何が間違っているのかよくわかりません。

{"エラー":"競合","理由":"ドキュメントの更新が競合しています。"}

ありがとう

4

1 に答える 1

3

あなたの要求は間違っていると思います。次のようなことを試してください:

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

次に、更新ハンドラー関数は、デザイン ドキュメントの "updates" キーに直接配置する必要があります (ビューの一部としてではありません)。したがって、設計ドキュメントは次のようになります。

{
    "_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']}"
    }
}
于 2011-09-20T11:09:43.483 に答える