Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Tìm kiếm văn bản trong MongoDB với Regular Expression

Để tìm kiếm văn bản với Regular Expression (Regex), sử dụng toán tử $regex. Tạo collection:

> db.demo519.insertOne({"Value":"50,60,70"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e88b9c0b3fbf26334ef6111") }
> db.demo519.insertOne({"Value":"80,90,50"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e88b9c7b3fbf26334ef6112") }
> db.demo519.insertOne({"Value":"10,30,40"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e88b9cfb3fbf26334ef6113") }

Hiển thị dữ liệu:

> db.demo519.find();

Kết quả:

Tìm tài liệu có trường Value chứa "50" (dùng regex /50/):

> db.demo519.findOne({ Value: { $regex: /50/ } });

Kết quả trả về tài liệu đầu tiên khớp (chứa "50"):

Các tùy chọn regex hữu ích:

  • $options: "i" - không phân biệt chữ hoa/thường
  • $options: "m" - chế độ đa dòng
  • $options: "s" - dấu chấm khớp xuống dòng

Ví dụ không phân biệt hoa/thường: { $regex: /50/, $options: "i" }. Cảnh báo: Regex không sử dụng index hiệu quả trên collection lớn - cân nhắc text index cho tìm kiếm full-text.