MongoDB Find-এ ডট নোটেশন ব্যবহার করে ফিল্ড সিলেকশন
নেস্টেড অবজেক্ট বা অ্যারে এর ভেতরের ফিল্ড শুধু দেখাতে (প্রজেকশন) find()-এর দ্বিতীয় আর্গুমেন্টে ডট নোটেশন ব্যবহার করা হয়। এটি নেটওয়ার্ক ট্রাফিক কমায় এবং পারফরম্যান্স বাড়ায়।
উদাহরণ: ডেটা ইনসার্ট
> db.demo307.insertOne({ "CleintId":101, "ClientDetails":{"ClientFirstName":"Chris","Age":34}, "ClientCountryName":"US" });
{ "acknowledged" : true, "insertedId" : ObjectId("5e4eab88f8647eb59e56203c") }
> db.demo307.insertOne({ "CleintId":102, "ClientDetails":{"ClientFirstName":"David","Age":31}, "ClientCountryName":"UK" });
{ "acknowledged" : true, "insertedId" : ObjectId("5e4eab97f8647eb59e56203d") }
সব ডকুমেন্ট দেখানো
> db.demo307.find();
আউটপুট:
{ "_id" : ObjectId("5e4eab88f8647eb59e56203c"), "CleintId" : 101, "ClientDetails" : { "ClientFirstName" : "Chris", "Age" : 34 }, "ClientCountryName" : "US" }
{ "_id" : ObjectId("5e4eab97f8647eb59e56203d"), "CleintId" : 102, "ClientDetails" : { "ClientFirstName" : "David", "Age" : 31 }, "ClientCountryName" : "UK" }
নির্দিষ্ট ফিল্ড প্রজেকশন (ClientDetails.Age, ClientCountryName, CleintId, _id বাদ)
> db.demo307.find( {"ClientDetails.ClientFirstName":'David'}, {"ClientDetails.Age" : 0,"ClientCountryName":0,"CleintId":0,"_id":0});
আউটপুট:
{ "ClientDetails" : { "ClientFirstName" : "David" } }
ব্যাখ্যা
{"ClientDetails.ClientFirstName":'David'}— কোয়ারি ফিল্টার: নেস্টেড ফিল্ড দিয়ে খোঁজা।{"ClientDetails.Age":0, "ClientCountryName":0, "CleintId":0, "_id":0}— প্রজেকশন: ০ মানে ফিল্ড বাদ দাও। ১ দিলে শুধু সেই ফিল্ড আসবে।_idডিফল্টভাবে আসে, বাদ দিতে স্পষ্টভাবে_id:0লাগে।
সর্বোত্তম অনুশীলন: প্রয়োজনীয় ফিল্ডগুলোই আনার জন্য ১ (ইনক্লুড) মোড ব্যবহার করুন, এটা বেশি পঠনীয় এবং রক্ষণাবেক্ষণে সহজ।