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

MongoDB-এ ডট নোটেশন দিয়ে নির্দিষ্ট ফিল্ড প্রজেকশন করা

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 লাগে।

সর্বোত্তম অনুশীলন: প্রয়োজনীয় ফিল্ডগুলোই আনার জন্য ১ (ইনক্লুড) মোড ব্যবহার করুন, এটা বেশি পঠনীয় এবং রক্ষণাবেক্ষণে সহজ।

  1. MongoDB-এ ফাইন্ড কুয়েরি থেকে অ্যারে মান রিট্রিভ করা

  2. MongoDB-এ কলেকশন থেকে ডেটা রিট্রিভ করা

  3. MongoDB-এ দুটি অ্যারে একসাথে আনউইন্ড করা

  4. MongoDB-এ শর্তানুসারে একাধিক সাব-ডকুমেন্ট থেকে ফিল্ড বের করা