
- TinyDB 教程
- TinyDB - 首頁
- TinyDB - 簡介
- TinyDB - 環境設定
- TinyDB - 插入資料
- TinyDB - 檢索資料
- TinyDB - 更新資料
- TinyDB - 刪除資料
- TinyDB - 查詢
- TinyDB - 搜尋
- TinyDB - where 子句
- TinyDB - Exists() 查詢
- TinyDB - Matches() 查詢
- TinyDB - Test() 查詢
- TinyDB - Any() 查詢
- TinyDB - All() 查詢
- TinyDB - one_of() 查詢
- TinyDB - 邏輯非
- TinyDB - 邏輯與
- TinyDB - 邏輯或
- TinyDB - 處理資料查詢
- TinyDB - 修改資料
- TinyDB - Upsert 資料
- TinyDB - 檢索資料
- TinyDB - 文件 ID
- TinyDB - 表格
- TinyDB - 預設表格
- TinyDB - 查詢快取
- TinyDB - 儲存型別
- TinyDB - 中介軟體
- TinyDB - 擴充套件 TinyDB
- TinyDB - 擴充套件
- TinyDB 有用資源
- TinyDB - 快速指南
- TinyDB - 有用資源
- TinyDB - 討論
TinyDB - 修改資料
我們已經討論了update查詢,透過它我們可以修改值以及處理資料庫中的資料。但是update查詢,例如db.update(fields, query),允許我們透過新增或覆蓋其值來更新文件。
但有時,我們想刪除一個欄位或需要增加其值。在這種情況下,我們可以傳遞一個函式而不是欄位。我們可以使用以下操作與更新查詢一起使用:
增量查詢
顧名思義,增量查詢用於增加資料庫中鍵的值。增量查詢的語法如下:
from tinydb.operations import increment db.update(increment('key'))
新增查詢
新增查詢用於向鍵的值新增值。它也適用於字串。新增查詢的語法如下:
from tinydb.operations import add db.update(add(key, value))
設定查詢
此查詢用於將鍵設定為資料的值。設定查詢的語法如下:
from tinydb.operations import set db.update(set(key, value))
減量查詢
減量查詢用於減少鍵的值。減量查詢的語法如下:
from tinydb.operations import decrement db.update(decrement(key))
減去查詢
減去查詢用於從鍵的值中減去值。減去查詢的語法如下:
from tinydb.operations import subtract db.update(subtract(key, value))
刪除查詢
刪除查詢用於從文件中刪除鍵。刪除查詢的語法如下:
from tinydb.operations import delete db.update(delete(key))
讓我們舉幾個例子來演示如何將這些操作與update查詢一起使用。我們將使用我們在所有先前章節中使用的相同的student資料庫。
示例 1
讓我們看看如何在我們的student表中增加學生的成績:
from tinydb import TinyDB, Query db = TinyDB('student.json') from tinydb.operations import increment db.update(increment('mark'), Query().mark == 275)
它將產生以下輸出:
[5]
以上輸出顯示它已更新文件 ID 為 5 的記錄。
示例 2
讓我們看看如何在我們的student表中向學生的成績新增 5 分:
from tinydb import TinyDB, Query db = TinyDB('student.json') from tinydb.operations import add db.update(add('mark', 5), Query().mark == 200)
它將產生以下輸出:
[4]
以上輸出顯示它已更新文件 ID 為 4 的記錄。
示例 3
讓我們看看如何在我們的student表中將學生的成績從 250 設定為 259:
from tinydb import TinyDB, Query db = TinyDB('student.json') from tinydb.operations import add db.update(add('mark', 259), Query().mark == 250)
它將產生以下輸出:
[1]
以上輸出顯示它已更新文件 ID 為 1 的記錄。
示例 4
讓我們看看如何在我們的student表中減少學生的成績:
from tinydb import TinyDB, Query db = TinyDB('student.json') from tinydb.operations import decrement db.update(decrement('mark'), Query().mark == 205)
它將產生以下輸出:
[4]
以上輸出顯示它已更新文件 ID 為 4 的記錄。
示例 5
讓我們看看如何在我們的student表中從學生的成績減去 5 分:
from tinydb import TinyDB, Query db = TinyDB('student.json') from tinydb.operations import add db.update(add('mark', 5), Query().mark == 204)
它將產生以下輸出:
[4]
以上輸出顯示它已更新文件 ID 為 4 的記錄。
示例 6
讓我們看看如何在我們的 student 表中從學生的成績減去 5 分:
from tinydb import TinyDB, Query db = TinyDB('student.json') from tinydb.operations import delete db.update(delete('mark'), Query().mark == 209)
它將產生以下輸出:
[4]
以上輸出顯示它已更新文件 ID 為 4 的記錄。它將刪除資料庫中值為 209 的 mark 欄位。
示例 7
讓我們看看如何使用單個查詢更新表中的多個值:
from tinydb import TinyDB, Query db = TinyDB('student.json') from tinydb import where db.update_multiple([ ({'st_name':'Eliana'}, where ('roll_number')==1), ({'mark':20}, where ('roll_number') ==2) ])
它將產生以下輸出:
[1,2]
以上輸出顯示它已更新文件 ID 為 1 和 2 的兩條記錄。