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

MongoDB-এ অ্যারে সর্ট করার সবচেয়ে সহজ পদ্ধতি

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

MongoDB-এ ডকুমেন্টের ভেতরের অ্যারে সর্ট করার জন্য $unwind, $sort, এবং $group পাইপলাইন ব্যবহার করতে হয়। MongoDB 5.2+ এ নতুন $sortArray অপারেটর ব্যবহার করা আরও সহজ।

নমুনা ডেটা তৈরি

> db.demo242.insertOne({
    "details2": [
        {"ShipingDate": new ISODate("2019-10-11"), "Price": 1400},
        {"ShipingDate": new ISODate("2019-10-01"), "Price": 1600}
    ]
});

সকল ডকুমেন্ট দেখানো

> db.demo242.find();

আউটপুট:

{ "_id" : ObjectId(...), "details2" : [
    { "ShipingDate" : ISODate("2019-10-11"), "Price" : 1400 },
    { "ShipingDate" : ISODate("2019-10-01"), "Price" : 1600 }
] }

প্রথামিক পদ্ধতি (MongoDB 5.2 এর আগে)

> db.demo242.aggregate([
    { $unwind: "$details2" },
    { $sort: { "details2.ShipingDate": 1 } },
    { $group: { _id: "$_id", details2: { $push: "$details2.ShipingDate" } } }
]);

আউটপুট (শুধু তারিখ):

{ "_id" : ObjectId(...), "details2" : [ ISODate("2019-10-01"), ISODate("2019-10-11") ] }

MongoDB 5.2+ এ $sortArray ব্যবহার (সরলতম)

> db.demo242.aggregate([
    { $project: { 
        details2: { 
            $sortArray: { 
                input: "$details2", 
                sortBy: { ShipingDate: 1 } 
            } 
        } 
    }}
]);

আউটপুট (পূর্ণ অবজেক্ট থাকে):

{ "_id" : ObjectId(...), "details2" : [
    { "ShipingDate" : ISODate("2019-10-01"), "Price" : 1600 },
    { "ShipingDate" : ISODate("2019-10-11"), "Price" : 1400 }
] }

তুলনা

পদ্ধতিMongoDB ভার্সনজটিলতাপূর্ণ অবজেক্ট রাখে?
$unwind + $sort + $groupসব ভার্সনউচ্চনা (শুধু নির্দিষ্ট ফিল্ড)
$sortArray5.2+নিম্নহ্যাঁ

সুপারিশ: MongoDB 5.2 বা তার উপরে থাকলে $sortArray ব্যবহার করুন।

  1. MongoDB Aggregate-এ অ্যারে উপাদানের পার্থক্য (Difference) দিয়ে সর্ট করা

  2. MongoDB অগ্রেশন ফ্রেমওয়ার্কে অ্যারের দৈর্ঘ্য অনুযায়ী সর্ট করা

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

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