$group स्टेज में कंपाउंड _id से कई फ़ील्ड्स द्वारा ग्रुपिंग
MongoDB एग्रीगेशन में $group स्टेज के _id फ़ील्ड में एक ऑब्जेक्ट देकर कई फ़ील्ड्स के संयोजन द्वारा ग्रुपिंग करें।
उदाहरण: संग्रह बनाना
> db.demo192.insertOne({"Name": "Chris", "Age": 22});
{ "acknowledged": true, "insertedId": ObjectId("5e3adb9f03d395bdc21346cd") }
> db.demo192.insertOne({"Name": "David", "Age": 21});
{ "acknowledged": true, "insertedId": ObjectId("5e3adba103d395bdc21346ce") }
> db.demo192.insertOne({"Name": "Chris", "Age": 22});
{ "acknowledged": true, "insertedId": ObjectId("5e3adba503d395bdc21346cf") }
> db.demo192.insertOne({"Name": "Mike", "Age": 24});
{ "acknowledged": true, "insertedId": ObjectId("5e3adbbf03d395bdc21346d0") }
सभी डॉक्यूमेंट्स देखना
> db.demo192.find();
{ "_id": ObjectId("5e3adb9f03d395bdc21346cd"), "Name": "Chris", "Age": 22 }
{ "_id": ObjectId("5e3adba103d395bdc21346ce"), "Name": "David", "Age": 21 }
{ "_id": ObjectId("5e3adba503d395bdc21346cf"), "Name": "Chris", "Age": 22 }
{ "_id": ObjectId("5e3adbbf03d395bdc21346d0"), "Name": "Mike", "Age": 24 }
कई फ़ील्ड्स द्वारा ग्रुपिंग की क्वेरी
> db.demo192.aggregate([{$group: {_id: {Age: "$Age", Name: "$Name"}}});
आउटपुट:
{ "_id": {"Age": 24, "Name": "Mike"} }
{ "_id": {"Age": 21, "Name": "David"} }
{ "_id": {"Age": 22, "Name": "Chris"} }
_id ऑब्जेक्ट में Age और Name दोनों शामिल हैं, इसलिए समान Age और Name वाले डॉक्यूमेंट्स एक ग्रुप में आ जाते हैं (Chris, 22 दो बार आया लेकिन ग्रुप में एक बार दिखा)।
उपयोग: ग्रुपिंग के बाद
$sum,$avg,$pushआदि एक्यूमुलेटर्स का उपयोग करके एग्रीगेटेड वैल्यूज़ निकालें।