Запрос, который фильтрует вложенные массивы, не включая несуществующие - PullRequest
0 голосов
/ 05 июня 2019

Мне нужны результаты запроса, в которых фильтруются вложенные массивы.Я получил эту работу, сформировав этапы конвейера агрегации следующим образом:

"{ $addFields: { '" + arrayFilter.field +
    "': { $filter: { input: '$" + arrayFilter.field +
    "', cond: { " + arrayFilter.cond + " } } } } }" );

Но проблема возникает, когда выполняются оба следующих условия:

  1. arrayFilter.field является вложенным, т.е. содержитточки
  2. один из сегментов пути в arrayFilter.field не существует в базе данных

В этих условиях я хочу, чтобы сцена имела нулевой эффект.К сожалению, результат запроса таков:

  1. материализуется путь, ведущий к несуществующему массиву
  2. нежелательному массиву присваивается значение null.

Как мне избежать этого нежелательного поведения и просто отфильтровать существующие массивы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...