Получить значение из вложенного объекта через agreggate от mongoose - PullRequest
0 голосов
/ 24 мая 2018

У меня есть похожий список:

[
  { 
     origin: 'asdf',
     translation: { ru: 'asdf' },
     _id: '215efb05-eb01-4376-8da2-8d8960a0e46d' 
  }
]

запрос к mongoose:

await LessonPhrase.aggregate([
   { $match: { lessonId } },
   { $project: {
      _id: '$_id',
      origin: 1,
      translation: '$.ru'
   }}
]);

Я хочу получить следующий список:

[
    { 
       origin: 'asdf',
       translation: 'asdf',
       _id: '215efb05-eb01-4376-8da2-8d8960a0e46d' 
    }
 ]

, но получаю ошибкукаждый раз не могу справиться с этим ..

1 Ответ

0 голосов
/ 24 мая 2018

Знак доллара ($) на этапе $project представляет ссылку на корень вашего документа, поэтому для получения ru из вложенного transaction нужного вам объекта:

await LessonPhrase.aggregate([
      { $match: { lessonId } },
      { $project: {
          _id: '$_id',
          origin: 1,
          translation: '$translation.ru'
      } }
  ]);
...