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

Truy vấn matches() trong TinyDB

Truy vấn matches() trong TinyDB là một công cụ mạnh mẽ, giúp người dùng tìm kiếm và lọc dữ liệu một cách linh hoạt dựa trên biểu thức chính quy. Với khả năng so khớp dữ liệu theo điều kiện phức tạp, truy vấn này giúp việc truy xuất thông tin từ cơ sở dữ liệu JSON trở nên chính xác và hiệu quả hơn, đặc biệt trong các tình huống cần xử lý dữ liệu lớn và đa dạng.

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.

Truy vấn matches() trong TinyDB giúp kiểm tra dữ liệu từ tệp JSON theo một điều kiện nhất định (thường ở dạng biểu thức chính quy) và trả về kết quả tương ứng. Nếu điều kiện không khớp với dữ liệu trong tệp, truy vấn sẽ trả về giá trị rỗng.

Cú pháp của truy vấn matches() trong TinyDB

db.search(Query().field.matches(biểu thức chính quy))

Trong đó, field đại diện cho phần dữ liệu mà chúng ta muốn truy xuất. Query() là đối tượng được tạo ra từ bảng JSON của chúng ta (ở đây là bảng student).

Chúng ta sẽ hiểu cách hoạt động của matches() thông qua một số ví dụ. Cơ sở dữ liệu học sinh dưới đây sẽ được sử dụng giống như các chương trước.

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

Tìm kiếm toàn bộ mục bằng matches() trong TinyDB

from tinydb import Query
student = Query()
db.search(student.st_name.matches('[aZ]*'))

Truy vấn này sẽ tìm tất cả các hàng có tên học sinh phù hợp với biểu thức chính quy [aZ]*, kết quả như sau:

[
   {
      "roll_number": 1,
      "st_name": "elen",
      "mark": 250,
      "subject": "TinyDB",
      "address": "delhi"
   },
   {
      "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"
   },
   {
      "roll_number": 4,
      "st_name": "lakan",
      "mark": 200,
      "subject": "MySQL",
      "address": "mumbai"
   },
   {
      "roll_number": 5,
      "st_name": "karan",
      "mark": 275,
      "subject": "TinyDB",
      "address": "benglore"
   }
]

Tìm kiếm phân biệt chữ hoa chữ thường

from tinydb import Query
import re
student = Query()
db.search(student.st_name.matches('ram', flags=re.IGNORECASE))

Truy vấn này sẽ tìm những hàng có tên học sinh khớp với chuỗi "ram", bất kể chữ hoa hay chữ thường nhờ vào cờ IGNORECASE:

[{
   'roll_number': 2,
   'st_name': 'Ram',
   'mark': [250, 280],
   'subject': ['TinyDB', 'MySQL'],
   'address': 'delhi'
}]

Tìm kiếm một mục cụ thể

student = Query()
db.search(student.address.matches('keral'))

Truy vấn này sẽ trả về hàng có địa chỉ khớp với chuỗi "keral":

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

Không tìm thấy mục khớp

student = Query()
db.search(student.address.matches('Ratlam'))

Vì không có hàng nào có trường "address" khớp với chuỗi "Ratlam", truy vấn sẽ trả về giá trị rỗng:

[]

Kết bài

Truy vấn matches() trong TinyDB không chỉ cung cấp sự linh hoạt trong việc tìm kiếm dựa trên các biểu thức chính quy, mà còn giúp tối ưu hóa quá trình truy xuất dữ liệu theo nhiều điều kiện khác nhau. Điều này làm cho TinyDB trở thành một công cụ hữu ích khi làm việc với các cơ sở dữ liệu JSON phức tạp, hỗ trợ người dùng dễ dàng quản lý và tìm kiếm thông tin một cách hiệu quả và chính xác.

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 any() trong TinyDB

Truy vấn any() trong TinyDB

Truy vấn test() trong TinyDB

Truy vấn test() 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