во вложенном массиве: https://mongoplayground.net/p/6CMYQC4phSi
При этом возвращается весь элемент массива Services. Подскажите, как сделать, чтобы в нём был только тот элемент массива Prices, который подходит под условие (у которого Id равен 3)?
Проекции по вложенным массивам к сожалению так не работают, так как они возвращают первый совпавший элемент, в вашем случае это { "Name": "Service 2", "Prices": [ { "Id": 3 }, { "Id": 4 } ] }
Это я уже понял. Но мне нужно уменьшить количество возвращаемых данных. Только аггрегацией?
Да, агрегацией Примерно так: https://play.db-ai.dev/m/ZS_1LY42IAABtNv0
Если задача просто ограничить данные то и limit подойдёт
Не подойдёт. limit ограничивает количество возвращаемых документов. А мне нужно уменьшить размер самого документа, потому что в Prices на самом деле приличное количество элементов, которые не хочется гонять по сети. Поэтому, видимо, аггрегация 🤷♂
Агрегация тогда твой выход
Обсуждают сегодня