MongoDB-এ প্রজেকশন (Projection) ব্যবহার করে নির্দিষ্ট ফিল্ডই ফেরত পাওয়া
MongoDB-এ find() মেথডের দ্বিতীয় প্যারামিটার হিসেবে প্রজেকশন অবজেক্ট পাস করে নির্দিষ্ট ফিল্ডই দেখানো বা লুকানো যায়। 1 মানে見せ, 0 মানে লুকানো।
১. কালেকশন ও নমুনা ডেটা তৈরি
> db.demo330.insertOne({"Id":101,"Name":"Chris","Age":21});
{ "acknowledged" : true, "insertedId" : ObjectId("5e52149ff8647eb59e562081") }
> db.demo330.insertOne({"Id":102,"Name":"Sam","Age":24});
{ "acknowledged" : true, "insertedId" : ObjectId("5e5214aaf8647eb59e562082") }
> db.demo330.insertOne({"Id":103,"Name":"David","Age":28});
{ "acknowledged" : true, "insertedId" : ObjectId("5e5214b3f8647eb59e562083") }
> db.demo330.insertOne({"Id":104,"Name":"Bob","Age":23});
{ "acknowledged" : true, "insertedId" : ObjectId("5e5214bdf8647eb59e562084") }
২. সব ডকুমেন্ট দেখানো (ডিফল্ট)
> db.demo330.find();
আউটপুট:
{ "_id" : ObjectId("5e52149ff8647eb59e562081"), "Id" : 101, "Name" : "Chris", "Age" : 21 }
{ "_id" : ObjectId("5e5214aaf8647eb59e562082"), "Id" : 102, "Name" : "Sam", "Age" : 24 }
{ "_id" : ObjectId("5e5214b3f8647eb59e562083"), "Id" : 103, "Name" : "David", "Age" : 28 }
{ "_id" : ObjectId("5e5214bdf8647eb59e562084"), "Id" : 104, "Name" : "Bob", "Age" : 23 }
৩. শুধু Name ফিল্ড দেখানো (Projection: {Name: 1})
> db.demo330.find({},{Name:1});
আউটপুট:
{ "_id" : ObjectId("5e52149ff8647eb59e562081"), "Name" : "Chris" }
{ "_id" : ObjectId("5e5214aaf8647eb59e562082"), "Name" : "Sam" }
{ "_id" : ObjectId("5e5214b3f8647eb59e562083"), "Name" : "David" }
{ "_id" : ObjectId("5e5214bdf8647eb59e562084"), "Name" : "Bob" }
মননীয় বিষয়:
_idফিল্ড ডিফল্টরূপে সবসময় ফেরত আসে (নাকি{_id:0}দিয়ে বাদ দিলে)।{Name:1}মানে শুধু Name ফিল্ডই দেখাবে (ইনক্লুশন মোড)।- একসাথে ইনক্লুশন এবং এক্সক্লুশন (যেমন
{Name:1, Age:0}) করা যায় না, _id বাদে। - নেস্টেড ফিল্ডের জন্য:
{"details.Name": 1}।
এটি নেটওয়ার্ক ট্রাফিক এবং মেমরি ইউজ কমাতে সাহায্য করে।