@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, но он возвращает только первый совпавший элемент и все.
  • Вопрос задан
  • 400 просмотров
Пригласить эксперта
Ответы на вопрос 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)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы