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

Kiểm tra trường chứa chuỗi trong MongoDB

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.