CouchDB修改文檔

在本篇文章中,我們來學習如何編輯/修改 CouchDB 數據庫中的文檔。編輯/修改 CouchDB 數據庫中的文檔有兩種方法,下面分別來看看如何操作。

1. 使用fauxton更新(編輯)文檔

打開Fauxton url:http://127.0.0.1:5984/_utils

在創建文檔後,還可以更新/更改/編輯文檔。首先打數據庫概覽,裏邊有文檔列表,如下表所示 -

CouchDB修改文檔

點擊想要修改的文檔,例如點擊ID10010這一條文檔信息,進入文檔詳細頁面 -

CouchDB修改文檔

雙擊要修改的數據項,如上圖中,修改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中有一個id10010的文檔。

首先,檢索要更新的文檔的修訂版本號。可以使用以下命令在文檔中找到文檔的_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以及新的修訂信息。 如果要更新文- 檔的新版本,則必須引用最新版本號。