TINYDB USEFUL RESOURCES
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Truy vấn any() trong TinyDB

Trong TinyDB, phương thức any() là một công cụ mạnh mẽ dùng để tìm kiếm và truy xuất dữ liệu từ các trường có chứa danh sách. Với khả năng khớp ít nhất một giá trị trong danh sách với truy vấn đã cung cấp, any() giúp chúng ta dễ dàng tìm kiếm các mục có chứa các giá trị cụ thể, từ đó tối ưu hóa quá trình truy vấn dữ liệu trong cơ sở dữ liệu JSON.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

TinyDB cung cấp một phương thức gọi là any() để tìm kiếm các trường chứa danh sách. Phương thức này giúp khớp ít nhất một giá trị từ cơ sở dữ liệu. Nó có thể tìm cả danh sách hoàn chỉnh hoặc chỉ cần có một giá trị khớp với truy vấn đã cung cấp.

Cú pháp của phương thức any() trong TinyDB

db.search(Query().field.any(query|list))

Ở đây:

  • field là trường dữ liệu mà chúng ta muốn truy cập.
  • Query() là đối tượng được tạo ra từ bảng JSON, ví dụ như bảng student.

Nếu chúng ta cung cấp một truy vấn (query) làm đối số cho phương thức any(), nó sẽ khớp tất cả các tài liệu mà ít nhất một tài liệu trong trường danh sách khớp với truy vấn đã cho.

Bài viết này được đăng tại [free tuts .net]

Ngược lại, nếu chúng ta cung cấp một danh sách (list) làm đối số cho any(), nó sẽ khớp tất cả các tài liệu mà ít nhất một tài liệu trong trường danh sách có mặt trong danh sách đã cho.

Hãy cùng tìm hiểu cách thức hoạt động của any() qua một vài ví dụ. Chúng ta sẽ sử dụng cùng cơ sở dữ liệu sinh viên như các chương trước.

Ví dụ 1

Tìm các trường trong bảng sinh viên (student) mà môn học là TinyDB, MySQL, hoặc oracle, hoặc sự kết hợp của bất kỳ hai hay ba môn học này:

from tinydb import TinyDB, Query
db = TinyDB('student.json')
db.search(Query().subject.any(['TinyDB', 'MySQL', 'oracle']))

Truy vấn trên sẽ trả về tất cả các hàng có trường "subject" chứa bất kỳ giá trị nào sau đây: "TinyDB", "MySQL", hoặc "oracle".

[
   {
      "roll_number": 2,
      "st_name": "Ram",
      "mark": [250, 280],
      "subject": ["TinyDB", "MySQL"],
      "address": "delhi"
   },
   {
      "roll_number": 3,
      "st_name": "kevin",
      "mark": [180, 200],
      "subject": ["oracle", "sql"],
      "address": "keral"
   }
]

Ví dụ 2

Bây giờ, hãy thử xem phương thức any() phản ứng thế nào khi nó không khớp với bất kỳ giá trị nào trong danh sách đã cho:

from tinydb import TinyDB, Query
db = TinyDB('student.json')
db.search(Query().subject.any(['Oracle']))

Truy vấn này sẽ trả về một giá trị rỗng vì không có hàng nào có trường "subject" là "Oracle".

[]

Ví dụ 3

Lưu ý rằng phương thức any() có phân biệt chữ hoa, chữ thường. Trường "subject" không có "Oracle", nhưng có "oracle". Hãy thử truy vấn sau:

from tinydb import TinyDB, Query
db.search(Query().subject.any(['oracle']))

Nó sẽ trả về hàng sau:

[{
   'roll_number': 3,
   'st_name': 'kevin',
   'mark': [180, 200],
   'subject': ['oracle', 'sql'],
   'address': 'keral'
}]

Do truy vấn phân biệt chữ hoa, chữ thường nên truy vấn trước đó không trả về kết quả vì không có hàng nào có "subject" là "Oracle".

Kết bài

Phương thức any() trong TinyDB là một công cụ linh hoạt và hữu ích khi làm việc với các trường dữ liệu dạng danh sách. Bằng cách cho phép truy vấn với ít nhất một giá trị trong danh sách, nó giúp tối ưu hóa việc tìm kiếm và lọc dữ liệu theo nhu cầu cụ thể. Việc sử dụng hiệu quả any() giúp quá trình xử lý dữ liệu trở nên nhanh chóng và chính xác hơn trong các ứng dụng thực tế.

Cùng chuyên mục:

Extend TinyDB trong TinyDB

Extend TinyDB trong TinyDB

Tìm hiểu Middleware trong TinyDB

Tìm hiểu Middleware trong TinyDB

Storage Types trong TinyDB

Storage Types trong TinyDB

Caching Query trong TinyDB

Caching Query trong TinyDB

Table mặc định trong TinyDB

Table mặc định trong TinyDB

Tìm hiểu Tables trong TinyDB

Tìm hiểu Tables trong TinyDB

ID tài liệu (Document ID) trong TinyDB

ID tài liệu (Document ID) trong TinyDB

Truy xuất dữ liệu TinyDB

Truy xuất dữ liệu TinyDB

Upserting dữ iệu trong TinyDB

Upserting dữ iệu trong TinyDB

Thao tác chỉnh sửa dữ liệu trong TinyDB

Thao tác chỉnh sửa dữ liệu trong TinyDB

Xử lý truy vấn dữ liệu trong TinyDB

Xử lý truy vấn dữ liệu trong TinyDB

Toán tử Logical OR trong TinyDB

Toán tử Logical OR trong TinyDB

Toán tử

Toán tử "Logical AND" trong TinyDB

Phủ định logic trong TinyDB

Phủ định logic trong TinyDB

Truy vấn one_of() trong TinyDB

Truy vấn one_of() trong TinyDB

Truy vấn all() trong TinyDB

Truy vấn all() trong TinyDB

Truy vấn test() trong TinyDB

Truy vấn test() trong TinyDB

Truy vấn matches() trong TinyDB

Truy vấn matches() trong TinyDB

Truy vấn exists() nâng cao trong TinyDB

Truy vấn exists() nâng cao trong TinyDB

Câu lệnh

Câu lệnh "where" trong TinyDB

Top