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

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

MongoDB Find-এ ডট নোটেশন ব্যবহার করে নেস্টেড অ্যারে ফিল্ড প্রজেকশন

যখন অ্যারেতে অবজেক্ট থাকে এবং সেখানে নির্দিষ্ট ফিল্ড শুধু দেখাতে হয়, তবে প্রজেকশনে ডট নোটেশন (যেমন details.Subject) ব্যবহার করা হয়।

উদাহরণ: ডেটা ইনসার্ট

> db.demo302.insertOne({"Id":101,"details":[{"Name":"Chris","Age":21,"Subject":"MySQL"}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e4d746f5d93261e4bc9ea52") }
> db.demo302.insertOne({"Id":102,"details":[{"Name":"Bob","Age":23,"Subject":"MongoDB"}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e4d74815d93261e4bc9ea53") }
> db.demo302.insertOne({"Id":103,"details":[{"Name":"David","Age":20,"Subject":"Java"}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e4d74955d93261e4bc9ea54") }

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

> db.demo302.find();

আউটপুট:

{ "_id" : ObjectId("5e4d746f5d93261e4bc9ea52"), "Id" : 101, "details" : [ { "Name" : "Chris", "Age" : 21, "Subject" : "MySQL" } ] }
{ "_id" : ObjectId("5e4d74815d93261e4bc9ea53"), "Id" : 102, "details" : [ { "Name" : "Bob", "Age" : 23, "Subject" : "MongoDB" } ] }
{ "_id" : ObjectId("5e4d74955d93261e4bc9ea54"), "Id" : 103, "details" : [ { "Name" : "David", "Age" : 20, "Subject" : "Java" } ] }

ফিল্ড সিলেকশন কোয়ারি (Subject MongoDB, শুধু Subject ফিল্ড দেখাবে)

> db.demo302.find({"details.Subject":"MongoDB"},{"details.Name":0,"details.Age":0,"_id":0,"Id":0});

আউটপুট:

{ "details" : [ { "Subject" : "MongoDB" } ] }

ব্যাখ্যা

  • {"details.Subject":"MongoDB"} — কোয়ারি: details অ্যারেতে যেকোনো অবজেক্টের Subject "MongoDB" হলে ডকুমেন্ট মিলবে।
  • {"details.Name":0,"details.Age":0,"_id":0,"Id":0} — প্রজেকশন: অনাবশ্যক ফিল্ডগুলো বাদ (0)।
  • ফলাফলে details অ্যারে থাকে কিন্তু শুধু Subject ফিল্ড সহ।

বিকল্প পদ্ধতি: {"details.Subject":1, "_id":0} (ইনক্লুড মোড) ব্যবহার করলে কোড ছোট হয় এবং নতুন ফিল্ড যোগ হলে আপডেট লাগে না।

  1. MongoDB কোয়ারী: আইডি যদি ডকুমেন্ট ফিল্ড অ্যারে মানের সমান হয় তবে বাদ দেওয়া

  2. MongoDB-তে বড় টেক্সট ফিল্ড ইনডেক্স করে কোয়ারি দ্রুত করা

  3. MongoDB-এ ডট নোটেশন ব্যবহার করে অ্যারে গ্রুপ করা

  4. MongoDB-তে সিম্পল কুয়েরি ব্যবহার করে ডকুমেন্ট ফিল্টার করা