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

MongoDB में सबडॉक्यूमेंट्स क्वेरी करके ऐरे को फ़िल्टर के रूप में उपयोग करना

MongoDB में $setIsSubset और एग्रीगेशन का उपयोग करके ऐरे फ़िल्टरिंग करना

MongoDB में किसी ऐरे के एलिमेंट्स को दूसरे ऐरे के सबसेट के आधार पर फ़िल्टर करने के लिए एग्रीगेशन पाइपलाइन में $setIsSubset और $filter ऑपरेटर्स का उपयोग करें।

उदाहरण: संग्रह और दस्तावेज़ बनाना

> db.demo407.insertOne(
  {
    Name:"Chris",
    "details" : [
      { id:100 },
      { id:110 },
      { id:130 }
    ]
  }
);
{ "acknowledged" : true, "insertedId" : ObjectId("5e70dffe15dc524f70227677") }

दस्तावेज़ देखना

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

आउटपुट:

{ "_id" : ObjectId("5e70dffe15dc524f70227677"), "Name" : "Chris", "details" : [ { "id" : 100 }, { "id" : 110 }, { "id" : 130 } ] }

ऐरे फ़िल्टरिंग क्वेरी (id 100 और 130 वाले एलिमेंट्स रखें)

> db.demo407.aggregate([
  {$match: { }},
  {$project: {
    "details": {
      $filter: {
        input: "$details",
        as: "output",
        cond: { $setIsSubset: [["$$output.id"], [100, 130]] }
      }
    }
  }}
])

आउटपुट:

{ "_id" : ObjectId("5e70dffe15dc524f70227677"), "details" : [ { "id" : 100 }, { "id" : 130 } ] }

व्याख्या:

  • $filter - ऐरे के प्रत्येक एलिमेंट पर शर्त लागू करता है
  • input: "$details" - स्रोत ऐरे
  • as: "output" - प्रत्येक एलिमेंट के लिए वेरिएबल नाम
  • $setIsSubset: [["$$output.id"], [100, 130]] - जांचता है कि क्या एलिमेंट का id मान [100, 130] सेट का सबसेट है
  • $$output.id - वर्तमान एलिमेंट का id फील्ड

$setIsSubset व्यवहार:

  • पहला ऐरे दूसरे ऐरे का सबसेट है तो true लौटाता है
  • [[]] डबल ऐरे इसलिए क्योंकि $setIsSubset दो सेट्स की अपेक्षा करता है
  • यहां प्रत्येक एलिमेंट का id एकल-मान सेट के रूप में जांचा जाता है

अन्य सेट ऑपरेटर्स: $setEquals, $setIntersection, $setDifference, $setUnion, $anyElementTrue, $allElementsTrue।

  1. - C++ में सरणी (Arrays) का उपयोग कैसे करें?

    एक सरणी एक ही प्रकार के तत्वों की एक श्रृंखला है जो सन्निहित मेमोरी स्थानों में रखी जाती है जिन्हें एक यूनिक आइडेंटिफायर में इंडेक्स जोड़कर व्यक्तिगत रूप से संदर्भित किया जा सकता है। C++ में सरणी का उपयोग करने के लिए, आपको पहले इसे घोषित करना होगा, उदाहरण के लिए, int arr[10]; यह आकार 10 की int प्रका

  1. - C# में बहु-आयामी सरणियों का उपयोग कैसे करें

    C# बहु-आयामी सरणियों की अनुमति देता है। बहु-आयामी सरणियों को आयताकार सरणी भी कहा जाता है। स्ट्रिंग्स की 2-आयामी सरणी को इस प्रकार घोषित करें। string [,] names; 2-आयामी सरणी को एक टेबल के रूप में सोचा जा सकता है, जिसमें x संख्या में पंक्तियां और y संख्या में कॉलम होते हैं। बहु-आयामी सरणियों को प्रत्

  1. - C# में पैरामीटर/पैराम ऐरे का उपयोग कैसे करें

    मेथड डिक्लेयर करते समय, आप पास किए गए आर्गुमेंट्स की संख्या के बारे में निश्चित नहीं होते। C# पैराम ऐरे आपको इसके बारे में जानने देते हैं। इस तरह आप param का उपयोग कर सकते हैं - public int AddElements(params int[] arr) { } निम्नलिखित C# में पैराम इम्प्लीमेंट करना सीखने का पूर्ण उदाहरण है - उदाहरण us