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

Nhiều điều kiện OR trên cùng một khóa trong MongoDB

Để á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.