Sử dụng $ sort trong tập hợp MongoDB. Hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -
> db.demo652.insertOne({ ... value:10, ... "details" : [{ ... "ProductName" : "Product-1", ... "ProductQuantity" : 8, ... "ProductPrice" : 500 ... }, { ... "ProductName" : "Product-2", ... "ProductQuantity" : 7, ... "ProductPrice" : 500 ... ... }] ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5e9f0730e3c3cd0dcff36a62") } > > db.demo652.insertOne({ ... value:5, ... "details" : [{ ... "ProductName" : "Product-1", ... "ProductQuantity" : 8, ... "ProductPrice" : 500 ... }, { ... "ProductName" : "Product-2", ... "ProductQuantity" : 7, ... "ProductPrice" : 500 ... ... }] ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5e9f0740e3c3cd0dcff36a63") }
Hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find () -
> db.demo652.find();
Điều này sẽ tạo ra kết quả sau -
{ "_id" : ObjectId("5e9f0730e3c3cd0dcff36a62"), "value" : 10, "details" : [ { "ProductName" : "Product-1", "ProductQuantity" : 8, "ProductPrice" : 500 }, { "ProductName" : "Product-2", "ProductQuantity" : 7, "ProductPrice" : 500 } ] } { "_id" : ObjectId("5e9f0740e3c3cd0dcff36a63"), "value" : 5, "details" : [ { "ProductName" : "Product-1", "ProductQuantity" : 8, "ProductPrice" : 500 }, { "ProductName" : "Product-2", "ProductQuantity" : 7, "ProductPrice" : 500 } ] }
Sau đây là truy vấn để sắp xếp theo thứ tự tăng dần -
> db.demo652.aggregate([{ ... "$unwind": "$details" ... }, { ... "$match": {} ... }, { ... "$group": { ... "ProductPrice": { ... "$first": "$value" ... }, ... "details": { ... "$push": { ... "ProductName": "$details.ProductName" ... } ... }, ... "_id": "$_id" ... } ... }, { ... "$sort": { ... "ProductPrice": 1 ... } ... }, { ... "$project": { ... "_id": 0, ... "ProductPrice": 1, ... "details": 1 ... } ... }]).pretty()
Điều này sẽ tạo ra kết quả sau -
{ "ProductPrice" : 5, "details" : [ { "ProductName" : "Product-1" }, { "ProductName" : "Product-2" } ] } { "ProductPrice" : 10, "details" : [ { "ProductName" : "Product-1" }, { "ProductName" : "Product-2" } ] }