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

MongoDB-এ অ্যারে ভ্যালু এক্সেস করে নির্দিষ্ট ডকুমেন্ট বের করা (Dot Notation)


MongoDB-এ ডট (.) নোটেশন ব্যবহার করে নেস্টেড অ্যারে-র ফিল্ড কোয়েরি করা

MongoDB-এ একটি ডকুমেন্টের ভেতরে অ্যারে থাকলে, অ্যারে-র ভেতরের অবজেক্টের ফিল্ডে কোয়েরি করার জন্য ডট (.) নোটেশন ব্যবহার করা হয়। MongoDB অটোমেটিক্যালি অ্যারে-র প্রতিটি এলিমেন্ট চেক করে।

১. কালেকশন ও নেস্টেড অ্যারে ডেটা তৈরি

> db.demo326.insertOne({
  id: 101,
  "ProductDetails": [
    { "ProductId": "Prod-101", "ProductName": "Product-1" },
    { "ProductId": "Prod-102", "ProductName": "Product-2" }
  ]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e516751f8647eb59e562074") }
> db.demo326.insertOne({
  id: 103,
  "ProductDetails": [
    { "ProductId": "Prod-104", "ProductName": "Product-5" },
    { "ProductId": "Prod-105", "ProductName": "Product-6" }
  ]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e516771f8647eb59e562075") }

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

> db.demo326.find();

আউটপুট:

{
  "_id" : ObjectId("5e516751f8647eb59e562074"),
  "id" : 101,
  "ProductDetails" : [
    { "ProductId" : "Prod-101", "ProductName" : "Product-1" },
    { "ProductId" : "Prod-102", "ProductName" : "Product-2" }
  ]
}
{
  "_id" : ObjectId("5e516771f8647eb59e562075"),
  "id" : 103,
  "ProductDetails" : [
    { "ProductId" : "Prod-104", "ProductName" : "Product-5" },
    { "ProductId" : "Prod-105", "ProductName" : "Product-6" }
  ]
}

৩. ডট নোটেশন দিয়ে কোয়েরি (ProductId: "Prod-104" থাকা ডকুমেন্ট)

> db.demo326.find({"ProductDetails.ProductId": "Prod-104"});

৪. ফলাফল

{
  "_id" : ObjectId("5e516771f8647eb59e562075"),
  "id" : 103,
  "ProductDetails" : [
    { "ProductId" : "Prod-104", "ProductName" : "Product-5" },
    { "ProductId" : "Prod-105", "ProductName" : "Product-6" }
  ]
}

কীভাবে কাজ করে: MongoDB ProductDetails অ্যারে-র প্রতিটি অবজেক্টের ProductId ফিল্ড চেক করে। যেই ডকুমেন্টের অ্যারে-তে কোনো একটি এলিমেন্টে "Prod-104" পায়, সেটি ফেরত দেয়। পুরো অ্যারে ফেরত আসে, শুধু ম্যাচ করা এলিমেন্ট নয়।

নোট: শুধু ম্যাচ করা এলিমেন্টই চাইলে $elemMatch বা এগ্রিগেশনের $filter ব্যবহার করতে হবে।


  1. MongoDB-এ অ্যারে এলিমেন্টস সহ নির্দিষ্ট ডকুমেন্ট ফেচ করা

  2. MongoDB-তে অ্যারের ভ্যালু অনুযায়ী কালেকশন সর্ট করা (aggregate + $unwind + $sort)

  3. MongoDB-এ ডকুমেন্ট থেকে নির্দিষ্ট ভ্যালু ফিল্টার করা ($filter)

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