Задать вопрос
@aylo

Как составить запрос mongodb с пустым массивом?

Собственно пытаюсь сделать запрос по двум полям. Одному из полей приходит пустой массив. Ничего не находит. Как бы сделать что бы находило? Или сделать это поле опциональным?

var shops = [123, 345, 567];
var types = [];

{
      'shops': {
        $in: shops
      },
      'types':  {
        $in: types
      }
}
  • Вопрос задан
  • 288 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фулстек-разработчик
    16 месяцев
    Далее
  • Академия Eduson
    FullStack-разработчик: тариф PRO
    14 месяцев
    Далее
  • Merion Academy
    Java-разработчик с нуля
    4 месяца
    Далее
Решения вопроса 1
bingo347
@bingo347
Crazy on performance...
Стройте запрос динамически
var shops = [123, 345, 567];
var types = [];

var query = {};
if(shops.length) {
  query.shops = { $in: shops };
}
if(types.length) {
  query.types = { $in: types };
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Bojczuk
Если есть изначальный массив всех типов, я бы присваивал var types это значение, если пришедший из источника массив типов был пустым, вроде того:
var types = types_from_source ? types_from_source : all_types
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы