เพื่อเรียงลำดับ ให้ใช้ $sort ใน MongoDB Aggregation
สร้างคอลเลกชันพร้อมเอกสารที่มี Subdocument (ฟิลด์ details):
> db.demo236.insertOne({"details":{"Name":"Chris","Age":21}});
{ "acknowledged" : true, "insertedId" : ObjectId("5e419015f4cebbeaebec514c") }
> db.demo236.insertOne({"details":{"Name":"David","Age":23}});
{ "acknowledged" : true, "insertedId" : ObjectId("5e41901cf4cebbeaebec514d") }
> db.demo236.insertOne({"details":{"Name":"Bob","Age":24}});
{ "acknowledged" : true, "insertedId" : ObjectId("5e419023f4cebbeaebec514e") }
แสดงเอกสารทั้งหมด:
> db.demo236.find();
ผลลัพธ์:
คำสั่ง Aggregation ใช้ $unwind, $project และ $sort เพื่อแยก Subdocument เลือกฟิลด์ และเรียงลำดับตาม Name แบบ Descending:
> db.demo236.aggregate( ... [ ... { $unwind: "$details" }, ... { $project: { ... Name: '$details.Name', ... Age: '$details.Age' ... }}, ... { $sort: {Name: -1}} ... ] ...);ผลลัพธ์ - เรียงตาม Name จาก Z ถึง A (David, Chris, Bob):