Bạn có thể thêm $cond
toán tử để tính các khoảng trống theo sau là $filter
để lọc các giá trị mảng trống.
Bạn yêu cầu hai thay đổi.
Thay đổi đầu tiên để lưu trữ các giá trị [] cho khoảng trống thay vì mảng có giá trị rỗng.
Cập nhật biểu thức $ let bên trong thành bên dưới:
{
"$let":{
"vars":{"five":...},
"in":{
"$cond":[
{"$eq":["$$five",[]]},
"$$five",
[{"$arrayElemAt":[{"$arrayElemAt":["$$five",-1]},0]},
....
{"$arrayElemAt":[{"$arrayElemAt":["$$five",-1]},-1]}]
]
}
}
}
Thay đổi thứ hai để lọc các giá trị mảng trống khỏi đầu ra.
{
"$project":{
"data":{
"$let":{
"vars":{"mints":...},
"in":{"$filter":{"input":{"$map":...},as:"flr", "cond":{"$ne":["$$flr",[]]}}}
}
}
}
}