Thao tác chỉnh sửa dữ liệu trong TinyDB
Trong TinyDB, mình tìm hiểu về câu lệnh update giúp chỉnh sửa giá trị cũng như quản lý dữ liệu trong cơ sở dữ liệu. Tuy nhiên, lệnh update như db.update(fields, query)
chỉ cho phép cập nhật một bản ghi bằng cách thêm hoặc ghi đè lên giá trị hiện có. Nhưng đôi khi, chúng ta muốn xóa một trường hoặc tăng/giảm giá trị của nó. Trong những trường hợp này, ta có thể truyền một hàm thay vì các trường dữ liệu. TinyDB cung cấp các thao tác sau đây với câu lệnh update:
Các lệnh update dữ liệutrong TinyDB
Lệnh tăng giá trị (Increment)
Lệnh increment được sử dụng để tăng giá trị của một khóa trong cơ sở dữ liệu. Cú pháp của lệnh tăng giá trị như sau:
from tinydb.operations import increment db.update(increment('key'))
Lệnh cộng thêm giá trị (Add)
Bài viết này được đăng tại [free tuts .net]
Lệnh add được sử dụng để cộng thêm giá trị vào giá trị hiện tại của một khóa, và cũng có thể sử dụng cho chuỗi ký tự. Cú pháp của lệnh add như sau:
from tinydb.operations import add db.update(add(key, value))
Lệnh đặt giá trị (Set)
Lệnh set được dùng để gán giá trị mới cho một khóa. Cú pháp của lệnh set:
from tinydb.operations import set db.update(set(key, value))
Lệnh giảm giá trị (Decrement)
Lệnh decrement được sử dụng để giảm giá trị của một khóa. Cú pháp của lệnh decrement như sau:
from tinydb.operations import decrement db.update(decrement(key))
Lệnh trừ giá trị (Subtract)
Lệnh subtract được dùng để trừ giá trị từ giá trị hiện tại của một khóa. Cú pháp của lệnh subtract:
from tinydb.operations import subtract db.update(subtract(key, value))
Lệnh xóa trường (Delete)
Lệnh delete được sử dụng để xóa một trường khỏi bản ghi. Cú pháp của lệnh delete:
from tinydb.operations import delete db.update(delete(key))
Ví dụ cách sử dụng lệnh update trong TinyDB
Sau đây là một vài ví dụ minh họa cách sử dụng các thao tác này với câu lệnh update. Chúng ta sẽ tiếp tục sử dụng bảng student như các chương trước.
Tăng giá trị điểm của một sinh viên
from tinydb import TinyDB, Query db = TinyDB('student.json') from tinydb.operations import increment db.update(increment('mark'), Query().mark == 275)
Kết quả:
[5]
Ví dụ này cho thấy bản ghi có document ID
là 5 đã được cập nhật.
Cộng thêm 5 điểm cho sinh viên
from tinydb import TinyDB, Query db = TinyDB('student.json') from tinydb.operations import add db.update(add('mark', 5), Query().mark == 200)
Kết quả:
[4]
Đặt giá trị điểm của một sinh viên là 259
from tinydb import TinyDB, Query db = TinyDB('student.json') from tinydb.operations import set db.update(set('mark', 259), Query().mark == 250)
Kết quả:
[1]
Giảm giá trị điểm của một sinh viên
from tinydb import TinyDB, Query db = TinyDB('student.json') from tinydb.operations import decrement db.update(decrement('mark'), Query().mark == 205)
Kết quả:
[4]
Trừ 5 điểm cho sinh viên
from tinydb import TinyDB, Query db = TinyDB('student.json') from tinydb.operations import subtract db.update(subtract('mark', 5), Query().mark == 204)
Kết quả:
[4]
Xóa trường điểm của sinh viên
from tinydb import TinyDB, Query db = TinyDB('student.json') from tinydb.operations import delete db.update(delete('mark'), Query().mark == 209)
Kết quả:
[4]
Cập nhật nhiều giá trị trong một câu lệnh
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) ])
Kết quả:
[1, 2]
Hai bản ghi có document ID
là 1 và 2 đã được cập nhật.
Với các thao tác mạnh mẽ trên, TinyDB mang lại khả năng xử lý và quản lý dữ liệu một cách linh hoạt, giúp việc cập nhật, xóa, và chỉnh sửa dữ liệu trở nên đơn giản và hiệu quả.
Kết bài
Tóm lại, TinyDB cung cấp một bộ công cụ đa dạng và linh hoạt để xử lý dữ liệu trong cơ sở dữ liệu NoSQL nhẹ. Với các thao tác như increment, add, set, decrement, subtract, và delete, người dùng có thể dễ dàng chỉnh sửa, thêm, hoặc xóa dữ liệu một cách linh hoạt và hiệu quả. Khả năng này không chỉ giúp tối ưu hóa việc quản lý dữ liệu mà còn đáp ứng được nhiều nhu cầu khác nhau trong các tình huống thực tế. TinyDB là lựa chọn lý tưởng cho các ứng dụng nhỏ và trung bình cần lưu trữ dữ liệu nhẹ, mang lại sự tiện lợi và hiệu quả cao trong việc xử lý dữ liệu.