Você pode adicionar
$cond
operador para contabilizar as lacunas seguido por $filter
para filtrar os valores do array vazio. Você precisa de duas alterações.
A primeira alteração para armazenar valores [] para lacunas em vez de matriz com valores nulos.
Atualize a expressão interna $let para abaixo:
{
"$let":{
"vars":{"five":...},
"in":{
"$cond":[
{"$eq":["$$five",[]]},
"$$five",
[{"$arrayElemAt":[{"$arrayElemAt":["$$five",-1]},0]},
....
{"$arrayElemAt":[{"$arrayElemAt":["$$five",-1]},-1]}]
]
}
}
}
A segunda alteração para filtrar os valores de matriz vazios da saída.
{
"$project":{
"data":{
"$let":{
"vars":{"mints":...},
"in":{"$filter":{"input":{"$map":...},as:"flr", "cond":{"$ne":["$$flr",[]]}}}
}
}
}
}