2011-12-17 23 views
1

我需要更新CouchDB文檔,當我嘗試和IRB運行命令錯誤上運行CouchRest.put()

CouchRest.put('http://localhost:5984/db', {"_id": "1","_rev": "sdf", "test": "testing"}) 

我得到一個錯誤 -

RESTClient實現::支持::未經授權:401未經授權:{「錯誤」:「未經授權」,「原因」:「你是不是一個服務器管理員。」}

而在同一個控制檯,我能夠成功運行 -

CouchRest.post('http://localhost:5984/db', {"test": "testing"}) 

有人可以幫助這個請。

乾杯!

回答

3

這一個很簡單。該API指出,針對數據庫名稱的PUT(在您的示例中爲「db」)會嘗試創建一個需要管理員權限的新數據庫。

要創建一個新文檔,您可以使用POST,但是API文檔不鼓勵使用POST。 PUT可用於創建和更新。

要更新現有文檔,請使用PUT以及URL路徑中的文檔ID,並在JSON中更新所需的修訂版本;例如,CouchRest.put('http://localhost:5984/db/1', {"rev": "sdf", "test": "testing"})

有關更多信息,請參閱Apache's Document API doc in the Wiki上的API文檔。

+0

非常感謝! – verdure 2011-12-17 13:39:13