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

MongoDB-তে দুটি কলাম জুড়ে গ্রুপিং করা


দুটি কলাম জুড়ে গ্রুপ করতে $lookup ব্যবহার করুন। ডকুমেন্টসহ একটি কলেকশন তৈরি করি:

> db.demo132.insertOne({"CountryName1":"US","CountryName2":"UK",Value:50});
{ "acknowledged" : true, "insertedId" : ObjectId("5e31950468e7f832db1a7f75") }
> db.demo132.insertOne({"CountryName1":"UK","CountryName2":"AUS",Value:10});
{ "acknowledged" : true, "insertedId" : ObjectId("5e31951d68e7f832db1a7f76") }
> db.demo132.insertOne({"CountryName1":"AUS","CountryName2":"US",Value:40});
{ "acknowledged" : true, "insertedId" : ObjectId("5e31952c68e7f832db1a7f77") }

find() মেথড দিয়ে সব ডকুমেন্ট দেখান:

> db.demo132.find();

আউটপুট:

{ "_id" : ObjectId("5e31950468e7f832db1a7f75"), "CountryName1" : "US", "CountryName2" : "UK", "Value" : 50 }
{ "_id" : ObjectId("5e31951d68e7f832db1a7f76"), "CountryName1" : "UK", "CountryName2" : "AUS", "Value" : 10 }
{ "_id" : ObjectId("5e31952c68e7f832db1a7f77"), "CountryName1" : "AUS", "CountryName2" : "US", "Value" : 40 }

MongoDB-তে দুটি কলাম জুড়ে গ্রুপ করার কোয়েরি:

> db.demo132.aggregate( [
    {
        "$lookup" : {
            "from" : "demo132",
            "localField" : "CountryName1",
            "foreignField" : "CountryName2",
            "as" : "out"
        }
    },
    { "$unwind" : "$out" },
    {
        "$project" : {
            "_id" : 0,
            "CountryName1" : 1,
            "total" : { "$sum" : [ "$Value", "$out.Value" ] }
        }
    }
])

ফলাফল (প্রতিটি দেশের টোটাল ভ্যালু):

{ "CountryName1" : "US", "total" : 90 }
{ "CountryName1" : "UK", "total" : 60 }
{ "CountryName1" : "AUS", "total" : 50 }

  1. MongoDB-তে দুই শর্তের ভিত্তিতে কোয়ান্টিটি আপডেট করা (নেস্টেড অ্যারে)

  2. MongoDB এগ্রিগেশন: একাধিক ফিল্ড গ্রুপ বাই করে ফলাফল বের করা ($facet)

  3. MySQL-এ দুটি কলাম দিয়ে টেবিল অর্ডার করা (ORDER BY)

  4. MySQL-এ দুটি কলাম কনক্যাটেনেট (Concatenate) করা