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

วิธีเรียงลำดับ เลือก และค้นหา Subdocument ใน MongoDB

เพื่อเรียงลำดับ ให้ใช้ $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):