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

Truy vấn MongoDB với nhiều điều kiện $or

Toán tử $or thực hiện logic OR trên nhiều điều kiện - tài liệu khớp nếu thỏa mãn ít nhất một điều kiện. Tạo collection sinh viên:

> db.demo711.insertOne({Name:"John","Marks":75,Age:21,status:"Active"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea85c215d33e20ed1097b7e") }
> db.demo711.insertOne({Name:"Chris","Marks":55,Age:22,status:"Active"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea85c2c5d33e20ed1097b7f") }
> db.demo711.insertOne({Name:"Bob","Marks":45,Age:20,status:"Inactive"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea85c3e5d33e20ed1097b80") }
> db.demo711.insertOne({Name:"David","Marks":85,Age:23,status:"Active"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea85c775d33e20ed1097b81") }

Hiển thị tất cả:

> db.demo711.find();
{ "_id" : ObjectId("5ea85c215d33e20ed1097b7e"), "Name" : "John", "Marks" : 75, "Age" : 21, "status" : "Active" }
{ "_id" : ObjectId("5ea85c2c5d33e20ed1097b7f"), "Name" : "Chris", "Marks" : 55, "Age" : 22, "status" : "Active" }
{ "_id" : ObjectId("5ea85c3e5d33e20ed1097b80"), "Name" : "Bob", "Marks" : 45, "Age" : 20, "status" : "Inactive" }
{ "_id" : ObjectId("5ea85c775d33e20ed1097b81"), "Name" : "David", "Marks" : 85, "Age" : 23, "status" : "Active" }

Truy vấn $or: Tuổi ≥ 23 HOẶC Điểm > 80 HOẶC Trạng thái Inactive:

> db.demo711.find({
...   $or: [
...     { Age: {$gte:23} },
...     { Marks: {$gt:80} },
...     { status: 'Inactive' }
...   ]
... });

Kết quả (Bob - Inactive, David - Age 23 & Marks 85):

{ "_id" : ObjectId("5ea85c3e5d33e20ed1097b80"), "Name" : "Bob", "Marks" : 45, "Age" : 20, "status" : "Inactive" }
{ "_id" : ObjectId("5ea85c775d33e20ed1097b81"), "Name" : "David", "Marks" : 85, "Age" : 23, "status" : "Active" }

Lưu ý: David khớp 2 điều kiện (Age ≥ 23 VÀ Marks > 80) nhưng chỉ xuất hiện một lần. $or không loại trùng kết quả.