Мне нужны результаты запроса, в которых фильтруются вложенные массивы.Я получил эту работу, сформировав этапы конвейера агрегации следующим образом:
"{ $addFields: { '" + arrayFilter.field +
"': { $filter: { input: '$" + arrayFilter.field +
"', cond: { " + arrayFilter.cond + " } } } } }" );
Но проблема возникает, когда выполняются оба следующих условия:
arrayFilter.field
является вложенным, т.е. содержитточки - один из сегментов пути в
arrayFilter.field
не существует в базе данных
В этих условиях я хочу, чтобы сцена имела нулевой эффект.К сожалению, результат запроса таков:
- материализуется путь, ведущий к несуществующему массиву
- нежелательному массиву присваивается значение
null
.
Как мне избежать этого нежелательного поведения и просто отфильтровать существующие массивы?