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

MongoDB-এ অন্য ফিল্ড দিয়ে গ্রুপ বাই করে মান বের করা

$group এবং $project ব্যবহার করে অন্য ফিল্ড অনুযায়ী গ্রুপিং

MongoDB Aggregation-এ একটি ফিল্ড দিয়ে গ্রুপ করে অন্য ফিল্ডের মানগুলো সংগ্রহ করতে $group এবং $project (with $reduce) ব্যবহার করা হয়।

নমুনা সংগ্রহ তৈরি

> db.demo374.insertOne(
    {
        "Name" : "Chris",
        "HobbyDetails" : [ "Reading Book", "Playing Football" ],
        "CountryName" : "US"
    }
);
{ "acknowledged" : true, "insertedId" : ObjectId("5e5a04402ae06a1609a00b04") }
> db.demo374.insertOne(
    {
        "Name" : "Chris",
        "HobbyDetails" : [ "Browsing Internet", "Playing Football" ],
        "CountryName" : "US"
    }
);
{ "acknowledged" : true, "insertedId" : ObjectId("5e5a04402ae06a1609a00b05") }

সব ডকুমেন্ট দেখানো

> db.demo374.find();

আউটপুট:


Name দিয়ে গ্রুপ করে HobbyDetails মার্জ করা

> db.demo374.aggregate([
    {$match : { "CountryName" : "US"}},
    {$group : {"_id" : "$Name", "HobbyDetails" : {$addToSet : "$HobbyDetails"}}},
    {$project : {"_id" : 0, "Name" : "$_id", "HobbyDetails" : {$reduce : {input : "$HobbyDetails", initialValue : [], in: { $concatArrays : ["$$value", "$$this"] }}}}}
]).pretty()

ফলাফল:


ব্যাখ্যা: CountryName "US" ফিল্টার করে, Name দিয়ে গ্রুপ করা হয়েছে। $addToSet অ্যারে অফ অ্যারে তৈরি করে, তারপর $reduce এবং $concatArrays দিয়ে সেটি ফ্ল্যাটেন করা হয়েছে। ডুপ্লিকেট "Playing Football" দুবার এসেছে।

  1. MongoDB-এ নির্দিষ্ট ফিল্ডযুক্ত ডকুমেন্ট খুঁজে বের করার পদ্ধতি

  2. MongoDB-তে অ্যারে আপডেট করা অন্য ফিল্ড দিয়ে

  3. MongoDB-তে অবজেক্টের ফিল্ড অ্যারে ভ্যালু কোয়েরি করা

  4. MongoDB-এ true/false মান অনুযায়ী কুয়েরি করা