U kunt $cond
. toevoegen operator om rekening te houden met hiaten gevolgd door $filter
om de lege arraywaarden te filteren.
U heeft twee wijzigingen nodig.
De eerste wijziging om [] waarden voor hiaten op te slaan in plaats van array met null-waarden.
Update de innerlijke $let-expressie naar hieronder:
{
"$let":{
"vars":{"five":...},
"in":{
"$cond":[
{"$eq":["$$five",[]]},
"$$five",
[{"$arrayElemAt":[{"$arrayElemAt":["$$five",-1]},0]},
....
{"$arrayElemAt":[{"$arrayElemAt":["$$five",-1]},-1]}]
]
}
}
}
De tweede wijziging om de lege arraywaarden uit de uitvoer te filteren.
{
"$project":{
"data":{
"$let":{
"vars":{"mints":...},
"in":{"$filter":{"input":{"$map":...},as:"flr", "cond":{"$ne":["$$flr",[]]}}}
}
}
}
}