Můžete přidat $cond
operátor pro zohlednění mezer následovaný $filter
pro filtrování hodnot prázdného pole.
Potřebujete dvě změny.
První změna k ukládání hodnot [] pro mezery namísto pole s hodnotami null.
Aktualizujte vnitřní výraz $let na níže:
{
"$let":{
"vars":{"five":...},
"in":{
"$cond":[
{"$eq":["$$five",[]]},
"$$five",
[{"$arrayElemAt":[{"$arrayElemAt":["$$five",-1]},0]},
....
{"$arrayElemAt":[{"$arrayElemAt":["$$five",-1]},-1]}]
]
}
}
}
Druhá změna pro filtrování hodnot prázdného pole z výstupu.
{
"$project":{
"data":{
"$let":{
"vars":{"mints":...},
"in":{"$filter":{"input":{"$map":...},as:"flr", "cond":{"$ne":["$$flr",[]]}}}
}
}
}
}