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

MongoDB গ্রুপ অগ리게েশনে _id ফিল্ড রিনেম করা যায় কি?

$project স্টেজ দিয়ে রিনেম

অগ리게েশন পাইপলাইনে $project স্টেজ ব্যবহার করে _id ফিল্ডকে অন্য নাম দিতে পারেন।

উদাহরণ: ডকুমেন্ট তৈরি

> db.renameIdDemo.insertOne({"StudentName":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c9a1760353decbc2fc927c5") }
> db.renameIdDemo.insertOne({"StudentName":"Robert"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c9a1765353decbc2fc927c6") }
> db.renameIdDemo.insertOne({"StudentName":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c9a176b353decbc2fc927c7") }

অগ리게েশন: _id -> mainId রিনেম

> db.renameIdDemo.aggregate({
    $project: {
        _id: 0,              // মূল _id বাদ
        mainId: "$_id",      // নতুন ফিল্ড mainId-এ _id-এর মান
        count: 1,            // অন্যান্য ফিল্ড রাখা
        sum: 1
    }
});

আউটপুট:

{ "mainId" : ObjectId("5c9a1760353decbc2fc927c5") }
{ "mainId" : ObjectId("5c9a1765353decbc2fc927c6") }
{ "mainId" : ObjectId("5c9a176b353decbc2fc927c7") }

ব্যাখ্যা

  • _id: 0 - মূল _id আউটপুটে_INCLUDE_ করা নয়
  • mainId: "$_id" - নতুন ফিল্ড mainId তৈরি করে সেটায় _id-এর মান কপি
  • "$fieldName" - অগ리게েশনে ফিল্ড রেফারেন্সের সিনট্যাক্স

অন্য পদ্ধতি: $addFields বা $set (MongoDB 4.2+) দিয়েও করা যায়।

  1. MongoDB-এ _id দিয়ে গ্রুপ করে ডকুমেন্ট কাউন্ট করা

  2. MongoDB Aggregation-এ নির্দিষ্ট ফিল্ড মান মэтচ করা ($match স্টেজ)

  3. MongoDB Aggregation-এ নির্দিষ্ট ফিল্ড মান অনুযায়ী ডকুমেন্ট ফিল্টার করা

  4. MongoDB-তে find()-এ প্রজেকশন দিয়ে _id ফিল্ড হাইড করা