কম্পিউটার টিউটোরিয়াল

MongoDB-এ ডুপ্লিকেট কলাম ভ্যালু 가진 ডকুমেন্টের স্কোর যোগ করা

অনেক ডকুমেন্ট জুড়ে ডুপ্লিকেট কলাম ভ্যালু (নাম) অনুযায়ী গ্রুপ করে স্কোর যোগ করতে $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 আউটপুট ফরম্যাট করে।

  1. MongoDB অ্যাগ্রিগেশন দিয়ে সব ডকুমেন্ট জুড়ে ডISTINCT মান গণনা করা

  2. MongoDB ডকুমেন্ট থেকে নাল ভ্যালু বাদ দেওয়া

  3. MySQL-এ SUM() ফাংশন দিয়ে কলামের মান যোগফল বের করা

  4. MySQL-এ GROUP BY COUNT(*) ব্যবহার করে একক কলামে ডুপ্লিকেট মানların ঘনত্ব বের করা