CouchDB修改文件


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

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

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

在建立文件後,還可以更新/更改/編輯文件。首先打資料庫概覽,裡邊有文件列表,如下表所示 -

點選想要修改的文件,例如點選ID10010這一條文件資訊,進入文件詳細頁面 -

雙擊要修改的資料項,如上圖中,修改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以及新的修訂資訊。 如果要更新文- 檔的新版本,則必須參照最新版本號。