Как достать коллекции второго уровня с помощью mongoose.populate?

К примеру у меня есть такой код
app.get('/json', function(req, res) {
        Bet.find({}, function(err, bets){
            if (err) throw err;
            Bet.populate(bets, { path: 'item' }, function(err, bets){
                if(err) throw err;
                Bet.populate(bets, { path: 'user' }, function(err, bets) {
                    if(err) throw err;
                    res.json(bets);
                });
            });
        });
    });


Из него я получаю такой json
{
   _id: "55e2ca9cc8b4b71821a6e90f",
   user: {
      _id: "55e2c9c3faa34a6d1f80ee93",
      __v: 0,
   steam: {
             avatar:"jpg",
            username: "Robert House",
          id: "76561198236425518"
         }
    },
itemsCount: 1,
__v: 0,
item: [
     {
       _id: "55e2ca9cc8b4b71821a6e910",
      type: "Rare mount",
     icon_url_large: "icon",
     icon_url: "icon",
     name: "Noctis the Heavenly Qilin Guardian",
      __v: 0
}
]
}


Теперь у меня есть цель внести такого рода объекты в один документ
Таким кодом:
app.get('/gamesjson', function(req, res) {
        Game.find({}, function(err, games){
            if(err) throw err;
            Game.populate(games, { path: 'bets' }, function(err, games){
                Game.populate(games, { path: 'user' }, function(err, games) {
                    if(err) throw err;
                    res.json(games);
                });
             });
        });
    })


И получаю такой json
_id: "55e2ca79c8b4b71821a6e90e",
__v: 0,
bets: [
 {
    _id: "55e2ca9cc8b4b71821a6e90f",
     user: "55e2c9c3faa34a6d1f80ee93",
     itemsCount: 1,
    __v: 0,
     item: [
       "55e2ca9cc8b4b71821a6e910"
     ]
  }
 ]
}

Но достать свойства объекта user и item уже не выходит, как реализуется метод populate если он вложен дальше чем в первый уровень ?

Я так понимаю проблема в path
Bet.populate(bets, { path: 'user' }, function(err, bets)
Но как указать path не могу понять.
  • Вопрос задан
  • 328 просмотров
Решения вопроса 1
@Kogan4ik Автор вопроса
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы