Sie können $cond
hinzufügen Operator, um Lücken zu berücksichtigen, gefolgt von $filter
um die leeren Array-Werte zu filtern.
Sie benötigen zwei Änderungen.
Die erste Änderung zum Speichern von []-Werten für Lücken anstelle von Arrays mit Nullwerten.
Aktualisieren Sie den inneren $let-Ausdruck wie folgt:
{
"$let":{
"vars":{"five":...},
"in":{
"$cond":[
{"$eq":["$$five",[]]},
"$$five",
[{"$arrayElemAt":[{"$arrayElemAt":["$$five",-1]},0]},
....
{"$arrayElemAt":[{"$arrayElemAt":["$$five",-1]},-1]}]
]
}
}
}
Die zweite Änderung zum Filtern der leeren Array-Werte aus der Ausgabe.
{
"$project":{
"data":{
"$let":{
"vars":{"mints":...},
"in":{"$filter":{"input":{"$map":...},as:"flr", "cond":{"$ne":["$$flr",[]]}}}
}
}
}
}