Я пытаюсь объединить два вложенных массива (используя $ concatArrays) в одно новое поле. Я хотел бы сортировать вывод конкатенации (Model.timeline) с помощью свойства, которое существует в обоих наборах объектов. Кажется, я не могу заставить его работать с $ unwind. Вот запрос без сортировки:
Model.aggregate([
{
$match: {
'id': id
}
},
{
$project: {
id: 1,
name: 1,
flagged: 1,
updatedAt: 1,
lastEvent: {
$arrayElemAt: ['$events', -1]
},
lastimage: {
$arrayElemAt: ['$images', -1]
},
timeline: {
$concatArrays: [
{ $filter: {
input: '$events',
as: 'event',
cond: { $and: [
{ $gte: ['$$event.timestamp', startAt] },
{ $lte: ['$$event.timestamp', endAt] }
]}
}},
{ $filter: {
input: '$images',
as: 'image',
cond: { $and: [
{ $gte: ['$$image.timestamp', startAt] },
{ $lte: ['$$image.timestamp', endAt] }
]}
}}
]
}
}
}
]);
Я пропустил что-то очевидное?