массив Y.
каждый элемент этого массива - это документ, у которого есть некоторое поле id
нужно: получить документ X, и чтобы в массиве Y оказались только те документы, айди которых равен, например, 1. elemMatch не подходит, так как он не кладёт в массив все документы, а только один.
составил запрос с агрегацией, но, кажется, что можно сделать проще:
db.list.aggregate([{$match: {_id: ObjectId("64f998428f32813ba68010eb"), "subscriptions.channel": 1}}, {$unwind: "$subscriptions"}, {$match: {"subscriptions.channel": 1}}, {$group:{"_id":"$_id","subscription":{$push:"$subscriptions"}, "email": {$first:"$email"}}}])
может кто-то подсказать, как правильнее всего составить такой запрос?
посмотрите на $filter и не надо будет $unwind/$group делать
https://play.db-ai.dev/m/ZQwKfmDHHgABH-JE
Обсуждают сегодня