Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

จัดเรียงข้อมูลใน MongoDB Aggregation ด้วย $sort

ใช้ $sort ใน Aggregation Pipeline

ใน Aggregation Framework ใช้ stage $sort เพื่อจัดเรียงผลลัพธ์ ร่วมกับ $group หรือ stage อื่นๆ

ตัวอย่างข้อมูล

สร้างคอลเลกชัน aggregationSortDemo มีข้อมูลนักเรียนซ้ำ StudentId:

> db.aggregationSortDemo.insertOne({"StudentId":98,"StudentFirstName":"John","StudentLastName":"Smith"});
> db.aggregationSortDemo.insertOne({"StudentId":128,"StudentFirstName":"Carol","StudentLastName":"Taylor"});
> db.aggregationSortDemo.insertOne({"StudentId":110,"StudentFirstName":"David","StudentLastName":"Miller"});
> db.aggregationSortDemo.insertOne({"StudentId":139,"StudentFirstName":"Chris","StudentLastName":"Brown"});
> db.aggregationSortDemo.insertOne({"StudentId":125,"StudentFirstName":"Sam","StudentLastName":"Williams"});
> db.aggregationSortDemo.insertOne({"StudentId":139,"StudentFirstName":"Mike","StudentLastName":"Wilson"});

Case 1: เรียงจากมากไปน้อย (Descending)

> db.aggregationSortDemo.aggregate([
    {$group: {_id: '$StudentId', "TotalOccurrences": {$sum: 1}}},
    {$sort: {_id: -1}}
]).pretty();

ผลลัพธ์:

{ "_id" : 139, "TotalOccurrences" : 2 }
{ "_id" : 128, "TotalOccurrences" : 1 }
{ "_id" : 125, "TotalOccurrences" : 1 }
{ "_id" : 110, "TotalOccurrences" : 1 }
{ "_id" : 98, "TotalOccurrences" : 1 }

Case 2: เรียงจากน้อยไปมาก (Ascending)

> db.aggregationSortDemo.aggregate([
    {$group: {_id: '$StudentId', "TotalOccurrences": {$sum: 1}}},
    {$sort: {_id: 1}}
]).pretty();

ผลลัพธ์:

{ "_id" : 98, "TotalOccurrences" : 1 }
{ "_id" : 110, "TotalOccurrences" : 1 }
{ "_id" : 125, "TotalOccurrences" : 1 }
{ "_id" : 128, "TotalOccurrences" : 1 }
{ "_id" : 139, "TotalOccurrences" : 2 }

ใช้ 1 สำหรับ ascending, -1 สำหรับ descending