@Young_nigilist

Как получить данные с вложенного JSON объекта MongoDB с nodeJS?

У меня есть JSON объект в MongoDB
6049ea2492153497342517.png
Я пробовал
findOne({'menu.products': 
     {$elemMatch:{
          '_id': 60475de5ce4dd6151019d574
           }
     }})

Но он выводит весь массив. Максимально приближенно получилось сделать с этим кодом
distinct('menu.products', { 'menu.products._id': 60475de5ce4dd6151019d574 })

6049eb543c102329249406.png
Он уже выводит все продукты, но не запрашиваемый. Как можно получить запрашиваемый продукт по ID?
  • Вопрос задан
  • 341 просмотр
Решения вопроса 1
@Israfil22
Не нужно так хранить данные, это ненормализованная база, лучше переделайте, пока не поздно.
В том числе, продукты должны быть ссылками на иную коллекцию данных. Ваша проблема возникает именно по этой причине.
// api: collection.find{filter, options}
myCollection.find({
	'menu.products': {
		$in: {
			{
				'_id': 60475de5ce4dd6151019d574
			}
		}
	}
}, {
	projection: {
		'menu.products': 1
	}
})
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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