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

MongoDB $group में कम्प्यूटेड एक्सप्रेशन को $push कैसे करें?

MongoDB एग्रीगेशन में $group चरण के अंदर कम्प्यूटेड एक्सप्रेशन को सरणी में डालने के लिए $push के साथ $cond (या अन्य एक्सप्रेशन) का उपयोग करें।

उदाहरण: स्टेटस फील्ड वाले दस्तावेज़

> db.demo24.insertOne({"Id":100,"Status":true});
{ "acknowledged" : true, "insertedId" : ObjectId("5e14c58722d07d3b95082e72") }
> db.demo24.insertOne({"Id":100,"Status":true});
{ "acknowledged" : true, "insertedId" : ObjectId("5e14c58a22d07d3b95082e73") }
> db.demo24.insertOne({"Id":100,"Status":false});
{ "acknowledged" : true, "insertedId" : ObjectId("5e14c58f22d07d3b95082e74") }
> db.demo24.insertOne({"Id":100,"Status":true});
{ "acknowledged" : true, "insertedId" : ObjectId("5e14c59122d07d3b95082e75") }
> db.demo24.insertOne({"Id":100,"Status":false});
{ "acknowledged" : true, "insertedId" : ObjectId("5e14c59222d07d3b95082e76") }

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

> db.demo24.find();

आउटपुट: 5 दस्तावेज़ जिनमें Id=100 और मिश्रित true/false स्टेटस हैं।

एग्रीगेशन: कम्प्यूटेड मानों को सरणी में डालना

Id द्वारा समूहित करें और प्रत्येक दस्तावेज़ के लिए "Active"/"InActive" लेबल वाली सरणी बनाएं:

> db.demo24.aggregate({
    $group: {
        _id: '$Id',
        AllValues: {
            $push: {
                $cond: [
                    {$eq: ['$Status', true]},
                    'Active',
                    'InActive'
                ]
            }
        }
    }
})

परिणाम

{ "_id" : 100, "AllValues" : [ "Active", "Active", "InActive", "Active", "InActive" ] }

व्याख्या

  • $group Id फील्ड द्वारा दस्तावेज़ों को समूहित करता है।
  • $push प्रत्येक दस्तावेज़ के लिए गणना किए गए मान को सरणी में संचित करता है।
  • $cond प्रत्येक दस्तावेज़ का मूल्यांकन करता है: यदि Status == true तो "Active" अन्यथा "InActive"।
  • परिणामी सरणी मूल दस्तावेज़ क्रम (समूह के भीतर) को बनाए रखती है।

वैकल्पिक: $addToSet का उपयोग करके अद्वितीय मान

यदि आपको केवल अद्वितीय कम्प्यूटेड मान चाहिए, तो $push को $addToSet से बदलें।

  1. - MongoDB में सबडॉक्यूमेंट्स के ऐरे को कैसे क्वेरी करें?

    सबडॉक्यूमेंट्स के ऐरे को क्वेरी करने के लिए MongoDB में $unwind का उपयोग करें। नमूना डेटा बनाना (सबडॉक्यूमेंट्स ऐरे) db.demo499.insertOne({ details: [ { Name:MIT, Rank: 1, CountryName:US }, { Name:Stanford University, Rank: 2 }, { Name:University of California, Berkeley, Rank: 3 }

  1. - MongoDB में _id द्वारा समूह कैसे बनाएं

    MongoDB में _id द्वारा समूह बनाने के लिए, $group का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo529.insertOne({Score:10}); { acknowledged : true, insertedId : ObjectId(5e8b1d5bef4dcbee04fbbbe4) } > db.demo529.insertOne({Score:20}); { acknowledged : true, insertedId : ObjectId(

  1. - MongoDB में एम्बेडेड दस्तावेजों के ऐरे को क्वेरी करें और नया जोड़ें

    इसके लिए, अपडेट के साथ $push का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo573.insertOne( { _id: 101, SearchInformation: [ { Site: Facebook.com, NumberOfHits: 100 }, { Site: Twitter.com, NumberOfHits: 300 } ] } ); { ac