如果 id 等於文件欄位陣列值,則排除 MongoDB 查詢


為此,使用 $not 和 $in。讓我們建立一個包含文件的集合 -

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

以下是快照。

使用 find() 方法顯示集合中的所有文件 -

db.collection.find()

這將生成以下輸出 -

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

以下查詢使用 $expr、$not 和 $in 獲取不匹配欄位陣列值的排除值 -

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

這將生成以下輸出 -

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

更新於: 30-Mar-2020

702 次瀏覽

開啟您的 職業生涯

完成課程以獲得認證

開始
廣告
© . All rights reserved.