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:

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

Tìm kiếm dữ liệu trong  TinyDB

Tìm kiếm dữ liệu trong TinyDB

Truy vấn dữ liệu TinyDB

Truy vấn dữ liệu TinyDB

Xóa dữ liệu trong TinyDB

Xóa dữ liệu trong TinyDB

Cập nhật dữ liệu trong TinyDB

Cập nhật dữ liệu trong TinyDB

Truy xuất dữ liệu trong TinyDB

Truy xuất dữ liệu trong TinyDB

Chèn dữ liệu vào TinyDB

Chèn dữ liệu vào TinyDB

Hướng dẫn cài đặt và sử dụng TinyDB

Hướng dẫn cài đặt và sử dụng TinyDB

TinyDB là gì? Tìm hiểu về TinyDB

TinyDB là gì? Tìm hiểu về TinyDB

Top