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 } }
প্রক্রিয়া:
$unwind-Informationঅ্যারে ভাঙে, প্রতিটি এলিমেন্ট আলাদা ডকুমেন্ট বানায়।$match-StudentAge >= 21শর্ত লাগায়।$project- শুধুInformationফিল্ড রাখে।