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

Sử dụng regex trong MongoDB findOne()

Phương thức findOne() trả về **một** tài liệu thỏa mãn điều kiện truy vấn. Kết hợp với $regex để tìm kiếm mẫu. Tạo collection:

> db.demo655.insertOne({subject:"MySQL"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea050254deddd72997713cc") }
> db.demo655.insertOne({subject:"MongoDB"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea0502b4deddd72997713cd") }
> db.demo655.insertOne({subject:"Java"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea050314deddd72997713ce") }

Hiển thị dữ liệu:

> db.demo655.find();

Kết quả:

Tìm **một** tài liệu có subject chứa chữ "M" (regex /M/):

> db.demo655.findOne({subject:{$regex:/M/}});

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

Lưu ý: findOne() trả về tài liệu đầu tiên theo thứ tự tự nhiên (thường là thứ tự insert). Nếu cần kết quả xác định, hãy thêm .sort():

db.demo655.findOne({subject:{$regex:/M/}}).sort({_id: 1})

So sánh:

  • find() - trả về cursor, có thể iterate tất cả kết quả
  • findOne() - trả về 1 document hoặc null, hiệu quả hơn khi chỉ cần 1 kết quả

Regex options: Dùng object syntax để thêm options: { $regex: /pattern/, $options: "i" } (case-insensitive).