Vous pouvez ajouter $cond
opérateur pour tenir compte des écarts suivi de $filter
pour filtrer les valeurs de tableau vides.
Vous avez besoin de deux modifications.
Le premier changement pour stocker les valeurs [] pour les espaces au lieu d'un tableau avec des valeurs nulles.
Mettez à jour l'expression interne $let ci-dessous :
{
"$let":{
"vars":{"five":...},
"in":{
"$cond":[
{"$eq":["$$five",[]]},
"$$five",
[{"$arrayElemAt":[{"$arrayElemAt":["$$five",-1]},0]},
....
{"$arrayElemAt":[{"$arrayElemAt":["$$five",-1]},-1]}]
]
}
}
}
Le deuxième changement pour filtrer les valeurs de tableau vides de la sortie.
{
"$project":{
"data":{
"$let":{
"vars":{"mints":...},
"in":{"$filter":{"input":{"$map":...},as:"flr", "cond":{"$ne":["$$flr",[]]}}}
}
}
}
}