Sử dụng Regular Expression với flag i (case-insensitive) để truy vấn không phân biệt chữ hoa/thường.
Ví dụ minh họa
Tạo collection caseInsensitiveDemo với các biến thể "David":
> db.caseInsensitiveDemo.insertOne({"TenNguoiDung": "David"});
> db.caseInsensitiveDemo.insertOne({"TenNguoiDung": "DAVID"});
> db.caseInsensitiveDemo.insertOne({"TenNguoiDung": "david"});
> db.caseInsensitiveDemo.insertOne({"TenNguoiDung": "Carol"});
> db.caseInsensitiveDemo.insertOne({"TenNguoiDung": "Mike"});
> db.caseInsensitiveDemo.insertOne({"TenNguoiDung": "Sam"});
> db.caseInsensitiveDemo.insertOne({"TenNguoiDung": "daVID"});
Truy vấn case-insensitive
> db.caseInsensitiveDemo.find({TenNguoiDung: /^david$/i}).pretty();
Kết quả - trả về 4 document:
{ "TenNguoiDung": "David" }
{ "TenNguoiDung": "DAVID" }
{ "TenNguoiDung": "david" }
{ "TenNguoiDung": "daVID" }
Các cách viết regex khác
/david/i- Chứa "david" bất kỳ vị trí/^david$/i- Khớp chính xác "david" (toàn trường){$regex: "david", $options: "i"}- Cú pháp object
Hiệu năng: Regex anchored (^...) có thể dùng index. Regex không anchored (/david/i) quét toàn bộ collection.