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

MongoDB Aggregation-এ $project ব্যবহার করে _id বাদ দেওয়া

MongoDB Aggregation Pipeline-এ ফিল্ড প্রজেকশন

$project স্টেজ ব্যবহার করে ডকুমেন্ট থেকে নির্দিষ্ট ফিল্ড বাদ দেওয়া বা নতুন ফিল্ড যোগ করা যায়। _id: false সেট করে ডিফল্ট _id ফিল্ডটি আউটপুট থেকে বাদ দেওয়া যায়।

নমুনা ডেটা তৈরি

> db.demo226.insertOne({"Name":"Chris","Age":21});
> db.demo226.insertOne({"Name":"Bob","Age":20});
> db.demo226.insertOne({"Name":"David","Age":22});

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

> db.demo226.find();

আউটপুট:

{ "_id" : ObjectId(...), "Name" : "Chris", "Age" : 21 }
{ "_id" : ObjectId(...), "Name" : "Bob", "Age" : 20 }
{ "_id" : ObjectId(...), "Name" : "David", "Age" : 22 }

Aggregation Pipeline-এ _id বাদ দিয়ে প্রজেকশন

> db.demo226.aggregate([
    {
        $project: {
            _id: false,
            StudentFirstName: "$Name",
            StudentAge: "$Age"
        }
    }
]);

আউটপুট:

{ "StudentFirstName" : "Chris", "StudentAge" : 21 }
{ "StudentFirstName" : "Bob", "StudentAge" : 20 }
{ "StudentFirstName" : "David", "StudentAge" : 22 }

প্রধান পয়েন্টগুলো

  • _id: false বা _id: 0 — _id ফিল্ড বাদ দেয়
  • "StudentFirstName": "$Name" — ফিল্ড রিনেম করে (আপস্ট্রিম ফিল্ডের নাম $ দিয়ে রেফারেন্স করতে হয়)
  • নতুন ফিল্ড যোগ করাও যায়: computedField: { $concat: ["$Name", " - ", { $toString: "$Age" }] }

ফাইন্ড (find) পদ্ধতিতে প্রজেকশন

সিম্পল কোয়েরিতে find()-এর দ্বিতীয় আর্গুমেন্ট হিসেবে প্রজেকশন দেওয়া যায়:

> db.demo226.find({}, { _id: 0, Name: 1, Age: 1 });

এটি aggregation pipeline-এর চেয়ে সহজ কিন্তু কম শক্তিশালী।

  1. MongoDB-তে _id বাদে সব ফিল্ড দেখানো (JavaScript ফরইচ + প্রজেকশন)

  2. MongoDB-তে $slice ব্যবহার করে ফিল্ডের রিটার্নিং ভ্যালু লিমিট করা

  3. MongoDB-এ একটি ফিল্ডের সব মান আপডেট করা নির্দিষ্ট স্ট্রিং দিয়ে

  4. MongoDB-এ "@email" স্ট্রিং সার্চ করা ফিল্ড ভ্যালুতে