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

MongoDB-এ নেস্টেড অ্যারে থেকে সব মান বের করে একক অ্যারেয়ে ফ্ল্যাটেন করা

$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" দুবার এসেছে।

  1. MySQL-এ কলাম ভ্যালু ক্যাটেনেট করে সিঙ্গেল লাইনে দেখানো এবং "MR." প্রিফিক্স যোগ করা

  2. MySQL-এ GROUP_CONCAT() দিয়ে সকল সারির মান কমা দিয়ে এক সারিতে দেখানো

  3. MySQL CONCAT()으로 여러 컬럼 값을 텍스트와 합쳐 단일 컬럼으로 출력하기

  4. MySQL에서 GROUP_CONCAT으로 전체 컬럼 값을 콤마 구분 단일 행으로 합치기