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

MongoDB-এ নেস্টেড অ্যারে থেকে ভ্যালু ফেচ করা ($elemMatch ব্যবহার)

গভীর নেস্টেড অ্যারে থেকে নির্দিষ্ট শর্তমতো ডেটা বের করতে MongoDB-এ $elemMatch অপারেটর ব্যবহার করা হয়। একাধিক লেভেলের অ্যারে হলে নেস্টেড $elemMatch লাগে।

জটিল ডেটা তৈরি করা

> db.fetchingArrayValuesDemo.insertOne(
... {
...     "StudentName": "David",
...     "StudentDetails": [
...         {
...             "FatherName": "Bob",
...             "CountryName": "US",
...             "Favourite": [
...                 {
...                     "Teacher": "DAVID",
...                     "Subject": [ "MySQL", "MongoDB", "Java" ],
...                     "Marks": [ 50, 60, 65 ]
...                 }
...             ]
...         }
...     ]
... } );
{ "acknowledged" : true, "insertedId" : ObjectId("5e06fc3425ddae1f53b621fa") }
> db.fetchingArrayValuesDemo.insertOne(
... {
...     "StudentName": "Robert",
...     "StudentDetails": [
...         {
...             "FatherName": "Sam",
...             "CountryName": "AUS",
...             "Favourite": [
...                 {
...                     "Teacher": "MIKE",
...                     "Subject": [ "Python", "C", "C++" ],
...                     "Marks": [ 76, 89, 91 ]
...                 }
...             ]
...         }
...     ]
... } );
{ "acknowledged" : true, "insertedId" : ObjectId("5e06fc6825ddae1f53b621fb") }

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

> db.fetchingArrayValuesDemo.find();

নেস্টেড $elemMatch দিয়ে কোয়েরি: `Teacher: "DAVID"` যেটি মetch করে

> db.fetchingArrayValuesDemo.find({
...     StudentDetails:{
...         $elemMatch: {
...             Favourite: {
...                 $elemMatch: {
...                     Teacher: "DAVID"
...                 }
...             }
...         }
...     }
... });

ফলাফল (শুধু David-এর ডকুমেন্ট):

{ "_id" : ObjectId("5e06fc3425ddae1f53b621fa"), "StudentName" : "David", "StudentDetails" : [ { "FatherName" : "Bob", "CountryName" : "US", "Favourite" : [ { "Teacher" : "DAVID", "Subject" : [ "MySQL", "MongoDB", "Java" ], "Marks" : [ 50, 60, 65 ] } ] } ] }

ব্যাখ্যা: প্রথম $elemMatch `StudentDetails` অ্যারেতে সার্চ করে, দ্বিতীয়টি `Favourite` অ্যারেতে। এটি গভীর নেস্টেড স্ট্রাকচার কোয়েরির জন্য আবশ্যক।

  1. MongoDB-এ নেস্টেড অ্যারে অ্যাগ্রিগেট করার পদ্ধতি

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

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

  4. MongoDB-এ অ্যারে কোয়েরি করে নির্দিষ্ট ভ্যালু ফেচ করা