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

Как выбрать только определенные элементы из вложенного массива?

Есть документ
{
	id: ObjectID(),
	mas: [{
		test: 3,
		sdfsbhfn: 1,
		sdfbhsnf: 1
	}, {
		test: 2,
		sdgfbhsdnfv: 1,
		sdhfdng: 1
	}, {
		test: 3,
		sdfsgbhfnv: 1,
		sdhfsndgfj: 3
	}]
}

Выборка идет по уникальному монговскому ID. Как мне сделать так, чтобы база выдавала из содержимого "mas" объекты, где "test: 3"? Пробую protection $elemMatch, но он возвращает только первый совпавший элемент и все.
  • Вопрос задан
  • 425 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фулстек-разработчик
    16 месяцев
    Далее
  • Академия Eduson
    FullStack-разработчик: тариф PRO
    14 месяцев
    Далее
  • Merion Academy
    Java-разработчик с нуля
    4 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 1
evgentus
@evgentus
Директор OBS Group
Если в готовой выборке по _id надо, то только aggregation https://docs.mongodb.org/manual/core/aggregation-p...
  1. выбирать по _id ($match)
  2. разворачивать массив mas ($unwind)
  3. фильтровать по test = 3 ($match)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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