Bạn có thể thực hiện việc này bằng cách $unwind
nhập updates
mảng, sắp xếp các tài liệu kết quả theo date
, rồi đến $group
nhập chúng lại với nhau trên _id
sử dụng thứ tự đã sắp xếp.
db.servers.aggregate(
{$unwind: '$service.apps.updates'},
{$sort: {'service.apps.updates.date': 1}},
{$group: {_id: '$_id', 'updates': {$push: '$service.apps.updates'}}},
{$project: {'service.apps.updates': '$updates'}})