$unwind এবং $group ব্যবহার করে নেস্টেড অ্যারে ফ্ল্যাটেন
MongoDB Aggregation-এ গভীর নেস্টেড অ্যারে থেকে সব মান বের করে একটি সিঙ্গল অ্যারে তৈরি করতে $unwind (দুইবার) এবং $group ব্যবহার করা হয়।
নমুনা সংগ্রহ তৈরি (গভীর নেস্টেড স্ট্রাকচার)
> db.demo389.insertOne(
{
"details":[
{ "Name":[ "Chris", "David" ] },
{ "Name":[ "Bob", "Mike" ] },
{ "Name":[ "Carol", "Sam" ] },
{ "Name":[ "David", "John" ] }
]
}
);
{ "acknowledged" : true, "insertedId" : ObjectId("5e5d1d8f22064be7ab44e7f9") }
ডকুমেন্ট দেখানো
> db.demo389.find();
আউটপুট:
সব নাম বের করে একক অ্যারে তৈরি (অগ্রেশন)
> db.demo389.aggregate([ { $unwind: "$details" }, { $unwind: "$details.Name" }, { $project: { "_id": "$_id", "Name": "$details.Name" } }, { $group: { _id: "$_id", out: { $push: "$Name" } } }, { $project: { "_id": 0, "NameArray": "$out" } } ])ফলাফল:
ব্যাখ্যা: প্রথম $unwind details অ্যারে, দ্বিতীয় $unwind Name অ্যারে। তারপর $group দিয়ে সব নাম $push করে একক অ্যারে তৈরি। ডুপ্লিকেট "David" দুবার এসেছে।