Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB क्वेरी: आईडी को सरणी फ़ील्ड मान से बाहर कैसे करें


इसके लिए $not के साथ $in ऑपरेटर का उपयोग करें। आइए एक संग्रह बनाते हैं:

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

सभी दस्तावेज़ देखने के लिए:

db.collection.find()

आउटपुट:

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

मिलान करने वाले सरणी मान को बाहर करने की क्वेरी

$expr, $not और $in का उपयोग करके उन दस्तावेज़ों को प्राप्त करें जहां id मान subjectid सरणी में मौजूद नहीं है:

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

परिणाम:

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

व्याख्या: यह क्वेरी केवल वही दस्तावेज़ लौटाती है जहां id मान subjectid सरणी में नहीं पाया जाता है।

  1. - MongoDB क्वेरी: ऐरे फील्ड वाले दस्तावेजों को मैच करें

    ऐरे फील्ड वाले दस्तावेजों को मैच करने के लिए, $elemMatch ऑपरेटर का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo592.insertOne({ id:101, details: [ { Name: Chris, Value: 200 }, { Name: David, Value: 800 } ] }); { acknowledged : true, insertedId : Ob

  1. - MongoDB में एम्बेडेड डॉक्यूमेंट की सरणी पर फ़िल्टर क्वेरी कैसे करें?

    इसके लिए MongoDB में aggregate() का उपयोग करें। आइए 3 स्तरों के नेस्टेड डॉक्यूमेंट्स के साथ एक कलेक्शन बनाते हैं: > db.demo736.insertOne( { _id: 101, details1: [ { details2: [ { details3: { Name: John } } ] } ] } ); { acknowledged : true, insertedId : 101 } > db.demo736.insertOne( { _id: 102,

  1. - MongoDB में सरणी क्वेरी करके विशिष्ट मान प्राप्त करें

    सरणी से विशिष्ट मान प्राप्त करने के लिए aggregate() के साथ $project का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo761.insertOne( { details: [ { student: { FullName: Chris Brown } } ] } ); { acknowledged : true, insertedId : ObjectId(5eb034d15637cd592b2a4af1) } > db.demo761.insertOne( { de