एग्रीगेशन ऑपरेशन कई दस्तावेज़ों से मानों को समूहित करते हैं, और समूहित डेटा पर विभिन्न ऑपरेशन करके एकल परिणाम लौटाते हैं।
नमूना डेटा बनाना
> db.demo620.insertOne({"Country":"IND","City":"Delhi",state:"Delhi"});
> db.demo620.insertOne({"Country":"IND","City":"Bangalore",state:"Karnataka"});
> db.demo620.insertOne({"Country":"IND","City":"Mumbai",state:"Maharashtra"});
सभी दस्तावेज़ देखना
> db.demo620.find();
{ "Country" : "IND", "City" : "Delhi", "state" : "Delhi" }
{ "Country" : "IND", "City" : "Bangalore", "state" : "Karnataka" }
{ "Country" : "IND", "City" : "Mumbai", "state" : "Maharashtra" }
देश, राज्य और शहर द्वारा एग्रीगेशन क्वेरी
> db.demo620.aggregate([
{ "$group": {
"_id": { "Country": "$Country", "state": "$state" },
"City": { "$addToSet": { "City": "$City" } }
}},
{ "$group": {
"_id": "$_id.Country",
"states": { "$addToSet": { "state": "$_id.state", "City": "$City" } }
}}
]).pretty();
परिणाम:
{ "_id" : "IND", "states" : [ { "state" : "Delhi", "City" : [ { "City" : "Delhi" } ] }, { "state" : "Maharashtra", "City" : [ { "City" : "Mumbai" } ] }, { "state" : "Karnataka", "City" : [ { "City" : "Bangalore" } ] } ] }
व्याख्या: पहला $group देश और राज्य के अनुसार समूहित करता है और शहरों को सेट में जोड़ता है। दूसरा $group केवल देश के अनुसार समूहित करता है और राज्यों को उनके शहरों के साथ नेस्टेड सेट में जोड़ता है। $addToSet डुप्लिकेट से बचाता है।