Sử dụng toán tử $regex để tìm document có trường chứa chuỗi con cụ thể.
Cú pháp
db.tênCollection.findOne({"tênTrường": {$regex: ".*chuỗiCầnTìm.*"}});
Ví dụ minh họa
Tạo collection checkFieldContainsStringDemo:
> db.checkFieldContainsStringDemo.insertOne({"Id": 1, "Ten": "John"});
> db.checkFieldContainsStringDemo.insertOne({"Id": 2, "Ten": "Johnson"});
> db.checkFieldContainsStringDemo.insertOne({"Id": 3, "Ten": "Carol"});
> db.checkFieldContainsStringDemo.insertOne({"Id": 4, "Ten": "Mike"});
> db.checkFieldContainsStringDemo.insertOne({"Id": 5, "Ten": "Sam"});
> db.checkFieldContainsStringDemo.insertOne({"Id": 6, "Ten": "Larry"});
Tìm tên chứa "Johnson"
> db.checkFieldContainsStringDemo.findOne({"Ten": {$regex: ".*Johnson.*"}});
Kết quả:
{ "_id": ObjectId("..."), "Id": 2, "Ten": "Johnson" }
Các mẫu regex hữu ích
^Johnson- Bắt đầu bằng "Johnson"Johnson$- Kết thúc bằng "Johnson".*Johnson.*- Chứa "Johnson" ở bất kỳ vị trí/Johnson/i- Không phân biệt chữ hoa/thường
Hiệu năng: Regex không dùng index (trừ khi anchored ^). Cân nhắc Text Search cho tìm kiếm toàn văn bản lớn.