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

MongoDB-এ প্রজেকশন: একমাত্র কলাম দেখানো

MongoDB-এ find() মেথডের দ্বিতীয় আর্গুমেন্ট (প্রজেকশন) ব্যবহার করে নির্দিষ্ট ফিল্ডই রিটার্ন করা এবং অন্যগুলো বাদ দেওয়া যায়।

কলেকশন এবং ডকুমেন্ট তৈরি

> db.demo216.insertOne({"ClientName":"John","ClientAge":34});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3e351003d395bdc213470c") }
> db.demo216.insertOne({"ClientName":"Bob","ClientAge":32});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3e351703d395bdc213470d") }
> db.demo216.insertOne({"ClientName":"Mike","ClientAge":35});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3e351c03d395bdc213470e") }

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

> db.demo216.find();

আউটপুট:

{ "_id" : ObjectId("5e3e351003d395bdc213470c"), "ClientName" : "John", "ClientAge" : 34 }
{ "_id" : ObjectId("5e3e351703d395bdc213470d"), "ClientName" : "Bob", "ClientAge" : 32 }
{ "_id" : ObjectId("5e3e351c03d395bdc213470e"), "ClientName" : "Mike", "ClientAge" : 35 }

একমাত্র কলাম প্রজেক্ট করার কোয়ারী

_id: 0 দিয়ে _id বাদ দেওয়া এবং ClientAge: 0 দিয়ে ClientAge বাদ দেওয়া হয়েছে - অর্থাৎ শুধু ClientName রিটার্ন হবে:

> db.demo216.find({}, {_id: 0, "ClientAge": 0});

ফলাফল

{ "ClientName" : "John" }
{ "ClientName" : "Bob" }
{ "ClientName" : "Mike" }

প্রজেকশন নিয়ম:

  • 1 বা true - ফিল্ড ইনক্লুড করবে
  • 0 বা false - ফিল্ড এক্সক্লুড করবে
  • _id ডিফল্টে ইনক্লুড থাকে, বাদ দিতে _id: 0 লিখতে হয়
  • মিক্স করা যায় না (শুধু _id বাদে): είদি সব ইনক্লুড বা সব এক্সক্লুড

বিকল্প সিনট্যাক্স (ইনক্লুড মোড):

db.demo216.find({}, {_id: 0, ClientName: 1})
// ফলাফল একই: শুধু ClientName

নেস্টেড ফিল্ড প্রজেকশন:

db.demo216.find({}, {_id: 0, "Details.Name": 1})

অ্যাগ্রিগেশনে $project:

db.demo216.aggregate([
  { $project: { _id: 0, ClientName: 1 } }
])

ব্যবহার ক্ষেত্র: নেটওয়ার্ক ট্রাফিক কমানো, সিকিউরিটি (সেনসিটিভ ফিল্ড হাইড), ক্লায়েন্ট-সাইড প্রসেসিং সহজ করা।

  1. MongoDB-এ কাস্টম স্ট্রিং দিয়ে ObjectId তৈরি করা (_id ফিল্ড ব্যবহার)

  2. MongoDB Aggregation-এ $redact এবং $cond ব্যবহার করে ডকুমেন্ট ফিল্টার

  3. MongoDB-এ একাধিক আটোমিক আপডেট (update() with $set, multi: true)

  4. MongoDB updateOne() এবং insertOne() ব্যবহার