Truy vấn test() trong TinyDB
Thông qua việc tạo ra các hàm kiểm tra riêng, mình có thể thực hiện các phép so sánh linh hoạt, từ đó tìm kiếm chính xác các giá trị trong cơ sở dữ liệu JSON. Với cú pháp đơn giản và khả năng tùy biến cao, test()
cho phép người dùng thực hiện các truy vấn phức tạp một cách dễ dàng, hỗ trợ tối ưu hóa quá trình xử lý dữ liệu.
Truy vấn test()
trong TinyDB dùng để kiểm tra xem các tham số được cung cấp có khớp với dữ liệu trong bảng hay không. Nếu các tham số này khớp với dữ liệu, truy vấn sẽ trả về dữ liệu tương ứng; ngược lại, nó sẽ trả về giá trị rỗng. Đầu tiên, chúng ta cần định nghĩa một hàm kiểm tra và các tham số của nó, sau đó TinyDB sẽ tìm kiếm dữ liệu trong cơ sở dữ liệu đã cho.
Cú pháp của truy vấn test()
trong TinyDB
Cú pháp của truy vấn test()
trong TinyDB như sau:
db.search(Query().field.test(function or condition, *arguments))
Trong đó:
Bài viết này được đăng tại [free tuts .net]
field
đại diện cho phần dữ liệu mà chúng ta muốn truy cập.Query()
là đối tượng được tạo từ bảng JSON, ví dụ là bảngstudent
.
Tạo hàm kiểm tra tùy chỉnh trong TinyDB
Chúng ta có thể tạo một hàm kiểm tra tùy chỉnh bằng cách sử dụng lambda
như sau:
object = lambda t: t == 'value'
Ở đây, từ khóa lambda
rất quan trọng để tạo hàm kiểm tra tùy chỉnh.
Ví dụ 1
Hãy cùng tìm hiểu cách hoạt động của truy vấn test()
thông qua một số ví dụ. Chúng ta sẽ sử dụng cơ sở dữ liệu học sinh đã đề cập trong các chương trước.
Đầu tiên, chúng ta sẽ tạo một hàm kiểm tra và sau đó sử dụng nó trong bảng học sinh:
from tinydb import TinyDB, Query db = TinyDB('student.json') objects = lambda t: t == [250, 280] db.search(Query().mark.test(objects))
Truy vấn này sẽ trả về các dòng có trường mark
chứa giá trị [250, 280]
:
[ { "roll_number": 2, "st_name": "Ram", "mark": [250, 280], "subject": ["TinyDB", "MySQL"], "address": "delhi" } ]
Ví dụ 2
Trong ví dụ này, chúng ta sẽ sử dụng trường subject
trong hàm kiểm tra:
student = Query() db = TinyDB('student.json') objects = lambda t: t == 'TinyDB' db.search(student.subject.test(objects))
Truy vấn này sẽ trả về tất cả các dòng có trường subject
có giá trị là "TinyDB"
:
[ { "roll_number": 1, "st_name": "elen", "mark": 250, "subject": "TinyDB", "address": "delhi" }, { "roll_number": 5, "st_name": "karan", "mark": 275, "subject": "TinyDB", "address": "benglore" } ]
Với TinyDB và truy vấn test()
, bạn có thể tùy chỉnh cách kiểm tra dữ liệu trong các bảng JSON, giúp việc truy xuất dữ liệu trở nên linh hoạt và mạnh mẽ hơn.
Kết bài
Truy vấn test()
trong TinyDB mang lại sự linh hoạt và hiệu quả cho việc kiểm tra dữ liệu trong các bảng JSON, đặc biệt khi cần áp dụng các điều kiện phức tạp. Nhờ khả năng tạo các hàm kiểm tra tùy chỉnh, người dùng có thể dễ dàng kiểm soát việc truy xuất dữ liệu theo những yêu cầu cụ thể. Qua đó, test()
trở thành một công cụ hữu ích trong việc tối ưu hóa quy trình xử lý dữ liệu, giúp tiết kiệm thời gian và nâng cao hiệu quả công việc.