Задать вопрос
evgentus
@evgentus
Директор OBS Group

MongoDB: как составить запрос на выборку по двум параметрам многомерного массива?

Есть коллекция:

{name: 'Name 1', params: [{id : 'Распродажа', value : 'Нет'}, {id: 'Гарантия', value: 'Да'}]}
{name: 'Name 2', params: [{id : 'Распродажа', value : 'Да'}, {id: 'Гарантия', value: 'Нет'}]}
{name: 'Name 3', params: [{id : 'Распродажа', value : 'Да'}, {id: 'Гарантия', value: 'Да'}]}
{name: 'Name 4', params: [{id : 'Распродажа', value : 'Нет'}, {id: 'Гарантия', value: 'Да'}]}

Как мне составить запрос, чтобы можно было выбрать например все, где Распродажа = Да

Делаю так {'$and' : [{'params.id' : 'Распродажа'}, {'params.value' : 'Да'}]}

Но в выборку так же попадают те записи, где Распродажа = Нет, а Гарантия = Да

PS: Вложенность params может быть любая
  • Вопрос задан
  • 309 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Skillbox
    Курс Java-разработчик
    4 месяца
    Далее
  • Яндекс Практикум
    Фулстек-разработчик
    16 месяцев
    Далее
Решения вопроса 1
@iShatokhin
JS developer
{ params: { $elemMatch: { id : "Распродажа", value : "Да" } } }


Здесь с пояснениями
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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