2011-09-20 63 views
2

繼:CouchDB Document Update Handlers (in-place updates)http://wiki.apache.org/couchdb/Document_Update_HandlersCouchDB的更新處理

我試圖創建自己的功能,增加了現在的整數,但我發現:

{「錯誤」:「BAD_REQUEST」 「原因」: 「附件名稱不能以 '_'」}

我的設計文檔的樣子:_design/DB

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

和請求是這樣的:

我也不是很明白我在做什麼錯,如果我刪除了「_」我會得到:

{「錯誤」:」衝突」, 「原因」: 「文檔更新衝突」}

感謝

回答

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