в агрегации его отфильтровать, оставить те значения, которые удовлетворяют какому нибудь условию
ну например все элементы где value >3, но не знаю как?
https://docs.mongodb.com/manual/reference/operator/aggregation/filter/#mongodb-expression-exp.-filter
Благодарю, похоже то что надо
db.sales.aggregate([ { $project: { items: { $filter: { input: "$items", as: "item", cond: { $gte: [ "$$item.price", 100 ] } } } } } ]) Этот пример решил мою задачу
а как отфильтровать элементы в массиве, где нет опрределённого поля? ```db.sales.aggregate([ { $project: { items: { $filter: { input: "$items", as: "item", cond: { $ne: [ "$$item.price", null ] } } } } } ])``` не работает
db.sales.aggregate([ { $project: { items: { $filter: { input: "$items", as: "item", cond: { $ne: [ "$$item.price", undefined ] } } } } } ]) так сработало
Обсуждают сегодня