Để áp dụng nhiều điều kiện OR trên cùng một trường, hãy dùng $or một lần với mảng các điều kiện.
Tạo collection:
> db.demo551.insertOne({"Name":"John"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8e36d39e5f92834d7f05e5") }
> db.demo551.insertOne({"Name":"Chris Brown"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8e36d89e5f92834d7f05e6") }
> db.demo551.insertOne({"Name":"John Doe"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8e36de9e5f92834d7f05e7") }
> db.demo551.insertOne({"Name":"John Smith"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8e36e59e5f92834d7f05e8") }
> db.demo551.insertOne({"Name":"Carol"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8e36ec9e5f92834d7f05e9") }
Hiển thị tất cả:
> db.demo551.find();
Truy vấn tìm Name là "Carol" HOẶC "John" (khớp chính xác):
> db.demo551.find({$or:[
... {"Name" : {$eq : "Carol"}},
... {Name: {$eq:"John"}}
... ]});
Kết quả:
{ "_id" : ObjectId("5e8e36d39e5f92834d7f05e5"), "Name" : "John" }
{ "_id" : ObjectId("5e8e36ec9e5f92834d7f05e9"), "Name" : "Carol" }
Lưu ý: "John Doe" và "John Smith" không khớp vì $eq so sánh chính xác toàn bộ chuỗi.