Wie Sie bereits angedeutet haben, müssen Sie die abgewickelten, gefilterten Dokumente wieder in ihre ursprüngliche Form zurückbringen. Sie können dies mit $group
tun :
Collection.aggregate([
{ $match:
{ _id: ObjectID(collection_id) }
},
{ $unwind: "$images" },
{ $match:
{ "images.deleted": null }
},
// Regroup the docs by _id to reassemble the images array
{$group: {
_id: '$_id',
name: {$first: '$name'},
images: {$push: '$images'}
}}
], function (err, result) {
if (err) {
console.log(err);
return;
}
console.log(result);
});