โอเปอเรเตอร์ $or ทำ Logical OR ระหว่างเงื่อนไขหลายอย่าง คืนค่าเอกสารที่ตรง อย่างน้อย 1 เงื่อนไข
> db.demo674.insertOne({Name: "Chris", Age: 21});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea3f33604263e90dac943eb") }
> db.demo674.insertOne({Name: "David", Age: 23});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea3f33c04263e90dac943ec") }
> db.demo674.insertOne({Name: "Bob", Age: 21});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea3f34204263e90dac943ed") }
> db.demo674.insertOne({Name: "John", Age: 24});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea3f34804263e90dac943ee") }
แสดงข้อมูล:
> db.demo674.find();
คิวรี $or: Name = "David" OR Age = 21
> db.demo674.find({$or: [{Name: "David"}, {Age: 21}]});ผลลัพธ์ - 3 เอกสาร (David, Chris, Bob):
$or vs $in vs Implicit AND
| Operator | Logic | Example |
|---|---|---|
| Implicit (comma) | AND | {Name: "David", Age: 21} = Name=David และ Age=21 |
$or | OR | {$or: [{Name: "David"}, {Age: 21}]} = Name=David หรือ Age=21 |
$in | OR (same field) | {Name: {$in: ["David", "Chris"]}} = Name=David หรือ Chris |