MongoDB-এ নেস্টেড অবজেক্টের ফিল্ড প্রজেক্ট (Projection) করার জন্য ডট নোটেশন
MongoDB-এ একটি ডকুমেন্টের ভেতরে নেস্টেড অবজেক্ট (Embedded Document) থাকলে, find()-এর প্রজেকশন প্যারামিটারে ডট (.) নোটেশন ব্যবহার করে নির্দিষ্ট নেস্টেড ফিল্ডই দেখানো বা লুকানো যায়।
১. কালেকশন ও নেস্টেড অবজেক্ট ডেটা তৈরি
> db.demo361.insertOne({"details":{"FirstName":"Chris","LastName":"Brown"}});
{ "acknowledged" : true, "insertedId" : ObjectId("5e56a61f54a481fef8ec7a19") }
> db.demo361.insertOne({"details":{"FirstName":"David","LastName":"Miller"}});
{ "acknowledged" : true, "insertedId" : ObjectId("5e56a62854a481fef8ec7a1a") }
> db.demo361.insertOne({"details":{"FirstName":"John","LastName":"Doe"}});
{ "acknowledged" : true, "insertedId" : ObjectId("5e56a63654a481fef8ec7a1b") }
২. সব ডকুমেন্ট দেখানো
> db.demo361.find();
আউটপুট:
{ "_id" : ObjectId("5e56a61f54a481fef8ec7a19"), "details" : { "FirstName" : "Chris", "LastName" : "Brown" } }
{ "_id" : ObjectId("5e56a62854a481fef8ec7a1a"), "details" : { "FirstName" : "David", "LastName" : "Miller" } }
{ "_id" : ObjectId("5e56a63654a481fef8ec7a1b"), "details" : { "FirstName" : "John", "LastName" : "Doe" } }
৩. প্রজেকশন দিয়ে শুধু details.LastName ফিল্ড দেখানো
> db.demo361.find({},{ "details.LastName": 1 });
৪. ফলাফল
ব্যাখ্যা:
{ "details.LastName": 1 }- ডট নোটেশন দিয়ে নেস্টেড ফিল্ড প্রজেক্ট করা।_idডিফল্টরূপে আসে (বাদ দিতে{_id: 0}যোগ করুন)।details.FirstNameলুকানো হয়েছে।- এটি নেটওয়ার্ক ব্যান্ডউইডথ এবং মেমরি বাঁচায়।
সীমাবদ্ধতা: একসাথে ইনক্লুশন (1) এবং এক্সক্লুশন (0) করা যায় না (_id বাদে)।