Computer >> Máy Tính >  >> Lập trình >> MongoDB

MongoDB nghịch đảo của truy vấn để trả về tất cả các mục ngoại trừ các tài liệu cụ thể?

Để nhận tài liệu ngoại trừ một số tài liệu cụ thể, hãy sử dụng $ nor cùng với $ và. Trước tiên, hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -

> db.demo1.insertOne({"StudentName":"Chris","StudentMarks":38});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e08a4f025ddae1f53b62216")
}
> db.demo1.insertOne({"StudentName":"David","StudentMarks":78});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e08a4f725ddae1f53b62217")
}
> db.demo1.insertOne({"StudentName":"Mike","StudentMarks":96});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e08a4fd25ddae1f53b62218")
}

Sau đây là truy vấn để hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find () -

> db.demo1.find().pretty();

Điều này sẽ tạo ra kết quả sau -

{
   "_id" : ObjectId("5e08a4f025ddae1f53b62216"),
   "StudentName" : "Chris",
   "StudentMarks" : 38
}
{
   "_id" : ObjectId("5e08a4f725ddae1f53b62217"),
   "StudentName" : "David",
   "StudentMarks" : 78
}
{
   "_id" : ObjectId("5e08a4fd25ddae1f53b62218"),
   "StudentName" : "Mike",
   "StudentMarks" : 96
}

Đây là truy vấn nghịch đảo của truy vấn -

> db.demo1.find({$nor:[{$and:[{'StudentName':'David'},{'StudentMarks':78}]}]});

Điều này sẽ tạo ra kết quả sau. Kết quả hiển thị hồ sơ Học sinh có điểm trừ 78 -

{ "_id" : ObjectId("5e08a4f025ddae1f53b62216"), "StudentName" : "Chris", "StudentMarks" : 38 }
{ "_id" : ObjectId("5e08a4fd25ddae1f53b62218"), "StudentName" : "Mike", "StudentMarks" : 96 }