অনেক ডকুমেন্ট জুড়ে ডুপ্লিকেট কলাম ভ্যালু (নাম) অনুযায়ী গ্রুপ করে স্কোর যোগ করতে $group অগরিগেশন ব্যবহার করুন। একটি কালেকশন তৈরি করুন:
> db.demo512.insertOne({"Name":"Chris","Score1":45,"Score2":65,"CountryName":"US"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e884d96987b6e0e9d18f588") }
> db.demo512.insertOne({"Name":"Chris","Score1":41,"Score2":45,"CountryName":"US"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e884da2987b6e0e9d18f589") }
> db.demo512.insertOne({"Name":"Bob","Score1":75,"Score2":55,"CountryName":"US"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e884db2987b6e0e9d18f58a") }
> db.demo512.insertOne({"Name":"Bob","Score1":65,"Score2":90,"CountryName":"US"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e884dc2987b6e0e9d18f58b") }
find() দিয়ে ডকুমেন্ট দেখান:
> db.demo512.find();
আউটপুট:
নাম অনুযায়ী গ্রুপ করে Score1 এবং Score2 যোগ করে নতুন কালেকশনে সেভ করার কোয়ারি:
> db.demo512.aggregate([ { "$group": { "_id": "$Name", "Score1": { "$sum": "$Score1" }, "Score2": { "$sum": "$Score2" }, "CountryName": { "$first": "$CountryName" } }}, { "$project": { "_id": 0, "Name": "$_id", "Score1": 1, "Score2": 1, "CountryName": 1 }}, { "$out": "demo513" } ])
demo513কালেকশন থেকে রেজাল্ট দেখান:> db.demo513.find();আউটপুট:
ব্যাখ্যা:
$groupএ$sumদিয়ে সংখ্যাসূচক ফিল্ড যোগ করা হয়।$firstদিয়ে নন-গ্রুপড ফিল্ড (CountryName) নেওয়া হয়।$outরেজাল্ট নতুন কালেকশনে লিখে।$projectআউটপুট ফরম্যাট করে।