К примеру у меня есть такой код
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 не могу понять.