@aylo

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

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

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

{
      'shops': {
        $in: shops
      },
      'types':  {
        $in: types
      }
}
  • Вопрос задан
  • 286 просмотров
Решения вопроса 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
Ответ написан
Ваш ответ на вопрос

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

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