Você pode fazer isso
$unwind
ndo as updates
array, classificando os documentos resultantes por date
, e então $group
reunindo-os novamente em _id
usando a ordem ordenada. 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'}})