Как использовать $ in, чтобы получить все данные в монго? - PullRequest
0 голосов
/ 04 июня 2019

Я использую $in для моего запроса в монго, я пишу что-то вроде

var array = returnArrayFromMe() // this will return an array ['a', 'b']

А потом

//Stuff
$in: ['$something', array],

Но иногда returnArrayFromMe возвращают []. Что я хочу, если array = [], мой запрос вернет все данные. Как я могу сделать это с $in ?. Я знаю, что мы можем сделать это с if else Но есть ли вообще все, если array = [] без if else?

1 Ответ

0 голосов
/ 04 июня 2019

Прежде всего, я не думаю, что это хорошая практика.По сути, вы включаете бизнес-логику в слой данных («если нет фильтров, выберите все»).Это не должно быть сделано здесь.

Если даже вы хотите сделать это таким образом, и вы используете агрегацию, вы, вероятно, могли бы использовать оператор $ cond (https://docs.mongodb.com/manual/reference/operator/aggregation/cond/)), чтобы выполнить его. Дажетак что это не будет хорошей практикой, так как вам придется проецировать один из двух списков, полный список «$ что-то» или отфильтрованный вами, возвращенный вами (используя $ cond, чтобы проверить, пуст ли ваш список).используйте результаты этой проекции, чтобы отфильтровать результаты.

Как я смог помочь.

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