MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

idがドキュメントフィールドの配列値と等しい場合に除外するMongoDBクエリ


このために、$inと一緒に$notを使用します。ドキュメントを使用してコレクションを作成しましょう-

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

これがスナップショットです。

idがドキュメントフィールドの配列値と等しい場合に除外するMongoDBクエリ

find()メソッドを使用してコレクションからすべてのドキュメントを表示する-

db.collection.find()

idがドキュメントフィールドの配列値と等しい場合に除外するMongoDBクエリ

これにより、次の出力が生成されます-

[
   {
      "_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"
      ]
   }
]

  1. MongoDBを使用して埋め込みドキュメントの配列でクエリをフィルタリングしますか?

    これには、MongoDBでaggregate()を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo736.insertOne( ...    { ...       "_id": "101", ...       "details1": [ ...          { ...             &q

  2. MongoDBで配列をクエリして、特定の値をフェッチします

    配列から特定の値をフェッチするには、$ projectとともにaggregate()を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo761.insertOne( ...    { ...       "details": [ ...          { ...             "student": { ...     &nb