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

MongoDB-তে এমবেডেড ডকুমেন্ট কোয়েরি করা (aggregate + $unwind)

MongoDB-তে অ্যারে ভিতরের এমবেডেড ডকুমেন্টগুলো আলাদা আলাদা ডকুমেন্ট হিসেবে কোয়েরি করার জন্য $unwind স্টেজ ব্যবহার করা হয়। এটি অ্যারেকে ডিকম্পোজ করে প্রতিটি এলিমেন্টকে আলাদা ডকুমেন্ট বানায়।

উদাহরণ: শিক্ষার্থীর তথ্য সহ ডকুমেন্ট

> db.demo705.insertOne({
    _id: 101,
    "Information": [
        { "StudentName": "Chris", "StudentAge": 21 },
        { "StudentName": "David", "StudentAge": 23 },
        { "StudentName": "Bob", "StudentAge": 20 }
    ]
});

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

> db.demo705.find();

আউটপুট: একই ডকুমেন্টের ভিতরে Information অ্যারে তিনটি সাব-ডকুমেন্ট সহ।

অ্যাগ্রিগেশন দিয়ে ২১ বছর বা তার উপরের শিক্ষার্থী বের করা

> db.demo705.aggregate([
    { $unwind: "$Information" },
    { $match: { "Information.StudentAge": { $gte: 21 } } },
    { $project: { Information: 1 } }
]);

আউটপুট:

{ "_id" : 101, "Information" : { "StudentName" : "Chris", "StudentAge" : 21 } }
{ "_id" : 101, "Information" : { "StudentName" : "David", "StudentAge" : 23 } }

প্রক্রিয়া:

  1. $unwind - Information অ্যারে ভাঙে, প্রতিটি এলিমেন্ট আলাদা ডকুমেন্ট বানায়।
  2. $match - StudentAge >= 21 শর্ত লাগায়।
  3. $project - শুধু Information ফিল্ড রাখে।
  1. MongoDB-তে নেস্টেড এম্বেডেড ডকুমেন্ট আপডেট করা

  2. MongoDB-তে ডুপ্লিকেট ডকুমেন্ট গ্রুপ করা

  3. MongoDB-তে এমবেডেড ডকুমেন্ট অ্যারে কোয়েরি করে নতুন এলিমেন্ট যোগ করা ($push + $nin)

  4. MongoDB-এ এমবেডেড ডকুমেন্টের অ্যারে ফিল্টার করা (৩ লেভেল)