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

Truy vấn MongoDB để loại trừ nếu id bằng giá trị mảng trường tài liệu

Đối với điều này, hãy sử dụng $ không cùng với $ in. Hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -

[
   {
      id: "101",
      subjectid: [
         "102"
      ]
   },
   {
      id: "102",
      subjectid: [
         "102"
      ]
   }
]

Đây là ảnh chụp nhanh.

Truy vấn MongoDB để loại trừ nếu id bằng giá trị mảng trường tài liệu

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.collection.find()

Truy vấn MongoDB để loại trừ nếu id bằng giá trị mảng trường tài liệu

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

[
   {
      "_id": ObjectId("5a934e000102030405000000"),
      "id": "101",
      "subjectid": [
         "102"
      ]
   },
   {
      "_id": ObjectId("5a934e000102030405000001"),
      "id": "102",
      "subjectid": [
         "102"
      ]
   }
]

Sau đây là truy vấn sử dụng $ expr, $ not và $ in để tìm nạp các giá trị ngoại trừ giá trị mảng trường phù hợp -

db.collection.find({
   $expr: {
      $not:{
         $in: [
            "$id",
            "$subjectid"
         ]
      }
   }
})

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

[
   {
      "_id": ObjectId("5a934e000102030405000000"),
      "id": "101",
      "subjectid": [
         "102"
      ]
   }
]