Sử dụng toán tử $or để kết hợp nhiều điều kiện
Toán tử $or thực hiện logic OR trên mảng các biểu thức truy vấn. Document khớp nếu ít nhất một điều kiện đúng.
Dữ liệu khách hàng
> db.demo362.insertOne({"ClientName": "John", "ClientProject": "School Management System"});
> db.demo362.insertOne({"ClientName": "David", "ClientProject": "Library Management System"});
> db.demo362.insertOne({"ClientName": "Mike", "ClientProject": "Event Tracker"});
> db.demo362.insertOne({"ClientName": "Carol", "ClientProject": "Hospital Management System"});
Tìm ClientName="John" HOẶC ClientProject="Event Tracker"
> db.demo362.find({
$or: [
{ "ClientName": "John" },
{ "ClientProject": "Event Tracker" }
]
});
Kết quả
{ "_id": ..., "ClientName": "John", "ClientProject": "School Management System" }
{ "_id": ..., "ClientName": "Mike", "ClientProject": "Event Tracker" }
Lưu ý hiệu năng:
- Mỗi điều kiện trong $or nên có index riêng
- MongoDB không dùng index compound cho $or (trừ khi dùng $or với hint)
- Cân nhắc
$textsearch cho tìm kiếm văn bản phức tạp