MongoDB-এ অ্যারে আইটেম কুয়েরি করা
MongoDB ডকুমেন্টের ভিতরে থাকা অ্যারে আইটেমগুলি অ্যাক্সেস বা কুয়েরি করার জন্য ডট (.) নোটেশন ব্যবহার করা হয়। এটি নেস্টেড ডেটা স্ট্রাকচারের সাথে কাজ করার একটি সহজ এবং শক্তিশালী উপায়।
উদাহরণ: ছাত্রের বিবরণের সাথে একটি সংগ্রহ তৈরি
প্রথমে demo29 নামে একটি সংগ্রহ তৈরি করি এবং কিছু নমুনা ডেটা ইনসার্ট করি:
> db.demo29.insertOne({"StudentDetails":[{"StudentName":"Chris","StudentMarks":58},{"StudentName":"Bob","StudentMarks":69}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e15fcc08f2315c2efc48e6e") }
> db.demo29.insertOne({"StudentDetails":[{"StudentName":"David","StudentMarks":97},{"StudentName":"Carol","StudentMarks":96}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e15fcd38f2315c2efc48e6f") }
সমস্ত ডকুমেন্ট দেখানো
find() মেথড ব্যবহার করে সংগ্রহের সব ডকুমেন্ট দেখানো যায়:
> db.demo29.find().pretty();
আউটপুট
{
"_id" : ObjectId("5e15fcc08f2315c2efc48e6e"),
"StudentDetails" : [
{ "StudentName" : "Chris", "StudentMarks" : 58 },
{ "StudentName" : "Bob", "StudentMarks" : 69 }
]
}
{
"_id" : ObjectId("5e15fcd38f2315c2efc48e6f"),
"StudentDetails" : [
{ "StudentName" : "David", "StudentMarks" : 97 },
{ "StudentName" : "Carol", "StudentMarks" : 96 }
]
}
নির্দিষ্ট অ্যারে আইটেম কুয়েরি করা
StudentDetails অ্যারেতে StudentName ফিল্ড ব্যবহার করে ডেভিড নামে ছাত্রটি খুঁজে বের করতে ডট নোটেশন ব্যবহার করুন:
> db.demo29.find({"StudentDetails.StudentName":"David"});
ফলাফল
{
"_id" : ObjectId("5e15fcd38f2315c2efc48e6f"),
"StudentDetails" : [
{ "StudentName" : "David", "StudentMarks" : 97 },
{ "StudentName" : "Carol", "StudentMarks" : 96 }
]
}
নোট: ডট নোটেশন অ্যারেতে যে কোনো এলিমেন্টে ম্যাচ করলে পুরো ডকুমেন্ট রিটার্ন করে। শুধু ম্যাচ করা এলিমেন্ট পেতে হলে $elemMatch বা অগ্রেশন পাইপলাইন ব্যবহার করতে হবে।