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

MongoDB-এ নেস্টেড স্ট্রিং অ্যারে পাওয়ার পদ্ধতি

MongoDB-এ গভীর নেস্টেড (nested) অ্যারেতে স্ট্রিং মান খুঁজে বের করতে find() মেথডে ডট (.) নোটেশন ব্যবহার করা সহজ এবং কার্যকর।

কলেকশন এবং ডকুমেন্ট তৈরি

> db.demo89.insertOne({
...   id: 101,
...   Details: [
...     { Name: "Chris", Marks: 45 },
...     { Name: "David", Marks: 55, Subjects: ["MySQL", "MongoDB", "Java", "C"] }
...   ]
... });
{ "acknowledged" : true, "insertedId" : ObjectId("5e2c163b79799acab037af51") }
> db.demo89.insertOne({
...   id: 102,
...   Details: [
...     { Name: "Mike", Marks: 48 },
...     { Name: "Bob", Marks: 98, Subjects: ["C++", "MySQL"] }
...   ]
... });
{ "acknowledged" : true, "insertedId" : ObjectId("5e2c163c79799acab037af52") }

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

> db.demo89.find();

আউটপুট:

{ "_id" : ObjectId("5e2c163b79799acab037af51"), "id" : 101, "Details" : [ { "Name" : "Chris", "Marks" : 45 }, { "Name" : "David", "Marks" : 55, "Subjects" : [ "MySQL", "MongoDB", "Java", "C" ] } ] }
{ "_id" : ObjectId("5e2c163c79799acab037af52"), "id" : 102, "Details" : [ { "Name" : "Mike", "Marks" : 48 }, { "Name" : "Bob", "Marks" : 98, "Subjects" : [ "C++", "MySQL" ] } ] }

নেস্টেড স্ট্রিং অ্যারে খুঁজে বের করার কোয়ারী

ডট নোটেশন Details.Subjects ব্যবহার করে "MongoDB" স্ট্রিং খুঁজে বের করা হয়েছে:

> db.demo89.find({ "Details.Subjects": "MongoDB" });

ফলাফল

{ "_id" : ObjectId("5e2c163b79799acab037af51"), "id" : 101, "Details" : [ { "Name" : "Chris", "Marks" : 45 }, { "Name" : "David", "Marks" : 55, "Subjects" : [ "MySQL", "MongoDB", "Java", "C" ] } ] }

ব্যাখ্যা: MongoDB অটোমেটিক্যালি Details অ্যারেতে প্রতিটি এলিমেন্টের Subjects অ্যারেতে "MongoDB" আছে কিনা চেক করে। প্রথম ডকুমেন্টে David-এর Subjects-এ "MongoDB" আছে, তাই সেটি রিটার্ন হয়েছে।

গুরুত্বপূর্ণ: এটি পুরো ডকুমেন্ট রিটার্ন করে, শুধু মেলে এলিমেন্ট বা অ্যারে নয়। শুধু মেলে এলিমেন্ট পেতে প্রজেকশন ব্যবহার করুন:

db.demo89.find(
  { "Details.Subjects": "MongoDB" },
  { "Details.$": 1 }  // শুধু প্রথম মিলে যাওয়া এলিমেন্ট
)

আরও উদাহরণ: Details.Subjects.0 - প্রথম সাবজেক্ট, Details.1.Subjects - দ্বিতীয় ডিটেইলস এলিমেন্টের সাবজেক্টস।

  1. MongoDB-তে সাবডকুমেন্টের অ্যারে কুয়েরি

  2. MongoDB-এ নেস্টেড অ্যারে সর্ট করা

  3. MongoDB-তে অ্যাগ্রিগেশন দিয়ে অ্যারে এলিমেন্টের গড় (Average) বের করা ($avg)

  4. MongoDB-তে নেস্টেড ডকুমেন্ট আপডেট করা (ডট নোটেশন + পজিশনাল $)