Задать вопрос
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 может быть любая
  • Вопрос задан
  • 299 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@iShatokhin
JS developer
{ params: { $elemMatch: { id : "Распродажа", value : "Да" } } }


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

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

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