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

MongoDB-তে অ্যারের ভ্যালু অনুযায়ী কালেকশন সর্ট করা (aggregate + $unwind + $sort)

MongoDB-তে নেস্টেড অ্যারে ভিতরের ফিল্ড অনুযায়ী মূল ডকুমেন্ট বা সাব-ডকুমেন্ট সর্ট করতে $unwind দিয়ে অ্যারে ফ্ল্যাটেন করে তারপর $sort ব্যবহার করা হয়।

উদাহরণ: স্টুডেন্ট ডিটেইলস অ্যারে সহ ডকুমেন্ট

> db.demo577.insertOne({
    "student": {
        "details": [
            { Name: "Chris", Score: 45 },
            { Name: "Bob", Score: 33 },
            { Name: "David", Score: 48 }
        ]
    }
});

অ্যাগ্রিগেশন: স্কোর ডিসেন্ডিং অর্ডারে সর্ট

> db.demo577.aggregate([
    { $unwind: "$student" },
    { $unwind: "$student.details" },
    { $sort: { "student.details.Score": -1 } }
]);

আউটপুট:

{ "student" : { "details" : { "Name" : "David", "Score" : 48 } } }
{ "student" : { "details" : { "Name" : "Chris", "Score" : 45 } } }
{ "student" : { "details" : { "Name" : "Bob", "Score" : 33 } } }

ব্যাখ্যা:

  1. $unwind: "$student" - student অবজেক্টকে আলাদা ডকুমেন্ট বানায় (এখানে ১টি, তাই প্রায় একই)
  2. $unwind: "$student.details" - details অ্যারে ভাঙে, প্রতিটি স্টুডেন্ট আলাদা ডকুমেন্ট
  3. $sort - Score ডিসেন্ডিং (-1) অনুযায়ী সর্ট

মূল ডকুমেন্ট স্ট্রাকচার বজায় রাখতে চাইলে শেষে $group দিয়ে আবার রিকনস্ট্রাক্ট করতে হয়।

  1. MongoDB কালেকশনে অবজেক্টের অ্যারে খোঁজা

  2. MongoDB ডকুমেন্ট ডিসেন্ডিং অর্ডারে সর্ট করা

  3. MongoDB-এ নেস্টেড অ্যারে সর্ট করা

  4. MongoDB-এ অ্যারে কোয়েরি করে নির্দিষ্ট ভ্যালু ফেচ করা