Hiện tại không thể sắp xếp trực tiếp bên trong các đối tượng mảng,
Bạn có thể thực hiện một trong hai tùy chọn,
- nếu bạn đang nhận dữ liệu từ tra cứu thì hãy sử dụng tra cứu bằng đường dẫn
nó sẽ cho phép sử dụng
$sort
đường dẫn trong tài liệu khớp - $ giải phóng mảng => $ sắp xếp nó => một lần nữa $ nhóm nó thành mảng, Tham khảo SO Trả lời
ở đây bạn đang sử dụng $lookup
, thay vì tra cứu đơn giản, bạn có thể sử dụng "$ lookup with pipe".
{
$lookup: {
from: "tags",
as: "tags",
let: { id: "$_id" },
pipeline: [
{
$match: {
$expr: { $eq: ["$$id", "$tag_type"] }
}
},
{
$sort: { order: -1 }
}
]
}
},
Giải pháp khả thi thứ hai: Playground