CouchDB修改文檔
在本篇文章中,我們來學習如何編輯/修改 CouchDB 數據庫中的文檔。編輯/修改 CouchDB 數據庫中的文檔有兩種方法,下面分別來看看如何操作。
1. 使用fauxton更新(編輯)文檔
打開Fauxton url:http://127.0.0.1:5984/_utils
在創建文檔後,還可以更新/更改/編輯文檔。首先打數據庫概覽,裏邊有文檔列表,如下表所示 -
點擊想要修改的文檔,例如點擊ID
爲10010
這一條文檔信息,進入文檔詳細頁面 -
雙擊要修改的數據項,如上圖中,修改age
字段的值,出現可編輯的輸入框後填寫修改的數據信息,然後點後面的綠色「勾」圖標保存新填入的數據,然後再點擊左上角的「Save Document」即可。
2. CouchDB使用cURL工具更新文檔
cURL方便用戶通過cURL工具,向服務器發送HTTP PUT方法請求來更新CouchDB中的文檔。
語法
curl -X PUT http://localhost:5984/database_name/document_id/ -d '{ "field" : "value", "_rev" : "revision id" }'
例子:
在數據庫yiibai_db
中有一個id
爲10010
的文檔。
首先,檢索要更新的文檔的修訂版本號。可以使用以下命令在文檔中找到文檔的_rev
:
yiibai@ubuntu:~$ curl -X GET http://127.0.0.1:5984/yiibai_db/10010
{"_id":"10010","_rev":"2-b4aa165c0e34ec08581e7dc9f85ec454","name":"minsu","age":28,"address":"No. 112 ZhongShangRoad GuangZhou"}
yiibai@ubuntu:~$
從上面獲得的文檔的修訂版本號_rev
來更改數據。 在這裏,假設要將年齡從28
歲改爲22
歲,名稱修改爲:Maxsu
,那麼可以使用如下請求命令 -
curl -H 'Content-Type: application/json' -X PUT http://127.0.0.1:5984/yiibai_db/10010/ -d'{"age": "22","name":"Maxsu", "_rev":"2-b4aa165c0e34ec08581e7dc9f85ec454"}'
執行結果如下所示 -
yiibai@ubuntu:~$ curl -H 'Content-Type: application/json' -X PUT http://127.0.0.1:5984/yiibai_db/10010/ -d'{"age": "22","name":"Maxsu", "_rev":"2-b4aa165c0e34ec08581e7dc9f85ec454"}'
{"ok":true,"id":"10010","rev":"3-592bfcd696098263c19dfe761bf92929"}
yiibai@ubuntu:~$ curl -X GET http://127.0.0.1:5984/yiibai_db/10010
{"_id":"10010","_rev":"3-592bfcd696098263c19dfe761bf92929","age":"22","name":"Maxsu"}
yiibai@ubuntu:~$
可以看到上面返回的數據已經是修改過的數據了。
在更新文檔時要記住的要點:
- 在請求中發送的URL必須包含數據庫名稱和文檔ID。
- 更新現有文檔與更新整個文檔相同。無法向現有文檔添加字段。只能使用相同的文檔ID將文檔的全新版本寫入數據庫。
- 使用修訂號(
_rev
)用作JSON請求的一部分。 - 在返回的JSON數據中包含成功消息,正在更新的文檔的ID以及新的修訂信息。 如果要更新文- 檔的新版本,則必須引用最新版本號。