MongoDB Aggregate Pipeline-এ $sort স্টেজ ব্যবহার
aggregate() পাইপলাইনে $sort স্টেজ ব্যবহার করে ডকুমেন্টগুলো কোনো ফিল্ড অনুযায়ী অ্যাসেন্ডিং (1) বা ডিসেন্ডিং (-1) ক্রমে সাজানো যায়। বড় ডেটাসেটে এটি কার্যকর।
উদাহরণ: ডেটা ইনসার্ট
> db.demo164.insertOne({"StudentAge":24});
{ "acknowledged" : true, "insertedId" : ObjectId("5e36883d9e4f06af551997c8") }
> db.demo164.insertOne({"StudentAge":25});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3688409e4f06af551997c9") }
> db.demo164.insertOne({"StudentAge":22});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3688429e4f06af551997ca") }
> db.demo164.insertOne({"StudentAge":21});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3688439e4f06af551997cb") }
সব ডকুমেন্ট দেখানো
> db.demo164.find();
আউটপুট:
{ "_id" : ObjectId("5e36883d9e4f06af551997c8"), "StudentAge" : 24 }
{ "_id" : ObjectId("5e3688409e4f06af551997c9"), "StudentAge" : 25 }
{ "_id" : ObjectId("5e3688429e4f06af551997ca"), "StudentAge" : 22 }
{ "_id" : ObjectId("5e3688439e4f06af551997cb"), "StudentAge" : 21 }
Aggregate $sort কোয়ারি (StudentAge ডিসেন্ডিং)
> db.demo164.aggregate([{ $sort : { StudentAge : -1 } }]);
আউটপুট:
{ "_id" : ObjectId("5e3688409e4f06af551997c9"), "StudentAge" : 25 }
{ "_id" : ObjectId("5e36883d9e4f06af551997c8"), "StudentAge" : 24 }
{ "_id" : ObjectId("5e3688429e4f06af551997ca"), "StudentAge" : 22 }
{ "_id" : ObjectId("5e3688439e4f06af551997cb"), "StudentAge" : 21 }
ব্যাখ্যা
{$sort: {StudentAge: -1}}— -1 মানে ডিসেন্ডিং (বড় থেকে ছোট), 1 মানে অ্যাসেন্ডিং।aggregate()পাইপলাইনে একাধিক স্টেজ চেইন করা যায় (match, project, group, sort, limit ইত্যাদি)।- সর্টের আগে
$matchদিয়ে ফিল্টার করলে পারফরম্যান্স ভালো হয়।
নোট: শেলে find().sort({StudentAge:-1}) ও কাজ করে, কিন্তু এggregেশন পাইপলাইনে আরও জটিল লজিক (গ্রুপিং, ক্যালকুলেশন) যোগ করা যায়।