ใช้โอเปอเรเตอร์ $or ใน find() เพื่อดึงเอกสารที่ตรงตามเงื่อนไขอย่างน้อยหนึ่งข้อ สร้างคอลเลกชันตัวอย่าง:
> db.demo362.insertOne({"ClientName":"John","ClientProject":"School Management System"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e56a77454a481fef8ec7a1c") }
> db.demo362.insertOne({"ClientName":"David","ClientProject":"Library Management System"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e56a78454a481fef8ec7a1d") }
> db.demo362.insertOne({"ClientName":"Mike","ClientProject":"Event Tracker"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e56a7a054a481fef8ec7a1e") }
> db.demo362.insertOne({"ClientName":"Carol","ClientProject":"Hospital Management System"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e56a7b754a481fef8ec7a1f") }
แสดงข้อมูล:
> db.demo362.find();
คิวรีหา ClientName = "John" OR ClientProject = "Event Tracker":
> db.demo362.find({$or: [{"ClientName":"John"}, {"ClientProject": "Event Tracker"}]})
ผลลัพธ์ (เจอ 2 เอกสาร):
{ "_id" : ObjectId("5e56a77454a481fef8ec7a1c"), "ClientName" : "John", "ClientProject" : "School Management System" }
{ "_id" : ObjectId("5e56a7a054a481fef8ec7a1e"), "ClientName" : "Mike", "ClientProject" : "Event Tracker" }
รายละเอียด $or
- รูปแบบ:
{$or: [{condition1}, {condition2}, ...]} - แต่ละเงื่อนไขสามารถซับซ้อนได้ (ใช้ $gt, $regex, $in, etc.)
- MongoDB จะ evaluate ทุก clause (ไม่ short-circuit)
- สร้างดัชนีสำหรับ $or: ใช้ compound index หรือ index บนแต่ละฟิลด์
- ตัวเลือก
$norสำหรับ NOT OR