PyMongo là driver Python chính thức cho MongoDB. Sử dụng $regex trong query dictionary để thực hiện regex search.
Cú pháp PyMongo
db.tênCollection.find({'tênTrường': {'$regex': '^từKhóa'}})
Ví dụ minh họa
Tạo collection performRegex:
> db.performRegex.insertOne({
"TenKhachHang": "Larry",
"ThongTinThuMuc": ["Folder 1", "Folder 2", "Folder 3", "Folder 4", "Folder 5"],
"ViTriThuMucChinh": "/MainFolder/Details/ClientFolder"
});
> db.performRegex.insertOne({
"TenKhachHang": "Larry",
"ThongTinThuMuc": ["ClientFolder 1", "ClientFolder 2", "ClientFolder 3", "ClientFolder 4", "ClientFolder 5"],
"ViTriThuMucChinh": "/MainFolder/Details/ClientFolder"
});
Trường hợp 1: Tìm document có phần tử mảng bắt đầu bằng "ClientFolder"
> db.performRegex.find({'ThongTinThuMuc': {'$regex': '^ClientFolder'}}).pretty();
Trả về document thứ 2.
Trường hợp 2: Tìm document có phần tử mảng bắt đầu bằng "Folder"
> db.performRegex.find({'ThongTinThuMuc': {'$regex': '^Folder'}}).pretty();
Trả về document thứ 1.
Trong Python code (PyMongo)
from pymongo import MongoClient
import re
client = MongoClient()
db = client.tenDatabase
collection = db.performRegex
# Cách 1: Regex object
results = collection.find({'ThongTinThuMuc': {'$regex': re.compile('^ClientFolder')}})
# Cách 2: String pattern với $options
results = collection.find({'ThongTinThuMuc': {'$regex': '^ClientFolder', '$options': 'i'}})
Lưu ý: Regex trên mảng (ThongTinThuMuc) match nếu ít nhất một phần tử thỏa mãn pattern.