2つのネストされた配列($ concatArraysを使用)を1つの新しいフィールドに連結しようとしています。私はオブジェクトの両方のセットに存在するプロパティによって連結(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] }
]}
}}
]
}
}
}
]);
明らかなものがありませんか?