$group स्टेज में मल्टीपल कीज़ (Name और Year) द्वारा एग्रीगेशन
एग्रीगेशन पाइपलाइन में $group स्टेज का उपयोग करके एक से अधिक फ़ील्ड्स (जैसे नाम और डेट का वर्ष) के संयोजन द्वारा ग्रुपिंग करें और वैल्यूज़ का योग निकालें।
उदाहरण: संग्रह बनाना
> db.demo190.insertOne({"DueDate": ISODate("2020-01-01"), "Value": 10, "Name": "Chris"});
{ "acknowledged": true, "insertedId": ObjectId("5e3ad76403d395bdc21346bf") }
> db.demo190.insertOne({"DueDate": ISODate("2020-02-05"), "Value": 30, "Name": "David"});
{ "acknowledged": true, "insertedId": ObjectId("5e3ad76403d395bdc21346c0") }
> db.demo190.insertOne({"DueDate": ISODate("2020-01-01"), "Value": 40, "Name": "Chris"});
{ "acknowledged": true, "insertedId": ObjectId("5e3ad7f003d395bdc21346c1") }
सभी डॉक्यूमेंट्स देखना
> db.demo190.find();
{ "_id": ObjectId("5e3ad76403d395bdc21346bf"), "DueDate": ISODate("2020-01-01T00:00:00Z"), "Value": 10, "Name": "Chris" }
{ "_id": ObjectId("5e3ad76403d395bdc21346c0"), "DueDate": ISODate("2020-02-05T00:00:00Z"), "Value": 30, "Name": "David" }
{ "_id": ObjectId("5e3ad7f003d395bdc21346c1"), "DueDate": ISODate("2020-01-01T00:00:00Z"), "Value": 40, "Name": "Chris" }
मल्टीपल कीज़ द्वारा एग्रीगेशन क्वेरी
> db.demo190.aggregate([
{
"$group": {
"_id": {
"Name": "$Name",
"DueDate": { "$year": "$DueDate" }
},
"Value": { "$sum": "$Value" }
}
}
]);
आउटपुट:
{ "_id": {"Name": "David", "DueDate": 2020}, "Value": 30 }
{ "_id": {"Name": "Chris", "DueDate": 2020}, "Value": 50 }
ग्रुपिंग Name और DueDate के वर्ष (2020) दोनों द्वारा हुई। Chris के दो डॉक्यूमेंट्स (10 + 40) का योग 50 हुआ।