Есть коллекция Languages
[
{
"code": "ru",
"name": {
"ru": "Русский",
"en": "Russian"
}
},
{
"code": "en",
"name": {
"ru": "Английский",
"en": "English"
}
}
]
Нужно выбрать языки что бы получился объект
[
{
"code": "ru",
"name": ''Русский'
},
{
"code": "en",
"name": "English"
}
]
const $project = {
name: {
$switch: {
branches: [
{
case: { $eq: [ '$code', 'en' ] },
then: '$name.en'
},
{
case: { $eq: [ '$code', 'ru' ] },
then: '$name.ru'
}
]
}
},
code: '$code'
}
const pipeline = [ { $project } ]
const result = await LanguagesModel.aggregate(pipeline)
Проблема в том что при добавлении нового языка придется дописывать switch, а напрашивается вариант с подставлением code в name, только не знаю возможно ли это