MongoDB-এ $unwind অপারেটর অ্যারে ফিল্ডকে ডিকম্পোজ (deconstruct) করে, প্রতিটি উপাদানের জন্য আলাদা ডকুমেন্ট তৈরি করে। অন্যান্য ফিল্ডগুলো প্রতিটি নতুন ডকুমেন্টে কপি হয়।
উদাহরণ ডেটা:
> db.unwindOperatorDemo.insertOne({"StudentName": "Larry", "StudentAge": 23, "StudentSubject": ["C", "C++", "Java", "MongoDB"]});
$unwind ব্যবহার:
> db.unwindOperatorDemo.aggregate([
{$project: {StudentName: 1, StudentAge: 1, StudentSubject: 1}},
{$unwind: "$StudentSubject"}
]).pretty();
ফলাফল:
{"_id": ObjectId("..."), "StudentName": "Larry", "StudentAge": 23, "StudentSubject": "C"}
{"_id": ObjectId("..."), "StudentName": "Larry", "StudentAge": 23, "StudentSubject": "C++"}
{"_id": ObjectId("..."), "StudentName": "Larry", "StudentAge": 23, "StudentSubject": "Java"}
{"_id": ObjectId("..."), "StudentName": "Larry", "StudentAge": 23, "StudentSubject": "MongoDB"}
প্রতিটি সাবজেক্টের জন্য আলাদা ডকুমেন্ট তৈরি হয়েছে, যেখানে StudentName এবং StudentAge রিপিট হয়েছে। খালি অ্যারে হ্যান্ডল করতে preserveNullAndEmptyArrays: true অপশন ব্যবহার করুন।