Решение 1:
Мы должны преобразовать $$ this в массив ([$$ this]) и сравнить с [null]
$project: {
"newArray": {
$reduce: {
input: "$arrayInput",
initialValue: [],
in: {
$concatArrays: [
"$$value",
{
$cond: {
if: { $eq: [["$$this"], [null]] },
then: [],
else: ["$$this"]
}
},
]
}
}
}
}
Решение 2:
Если вы хотите исключить повторяющиеся значения, мы должны использовать $ setIntersection во входном значении.
Ввод: ["foo", "bar", null, "foo", "bar"]
Вывод: ["foo", "bar"]
$project: {
"newArray": {
$reduce: {
input: { "$setIntersection": "$arrayInput" },
initialValue: [],
in: {
$concatArrays: [
"$$value",
{
$cond: {
if: { $eq: [["$$this"], [null]] },
then: [],
else: ["$$this"]
}
},
]
}
}
}
}