2013-02-12 63 views
1

我使用MongoDB的貓鼬ODMREST的NodeJS項目MongoDB中的ObjectId使用

我的模型模式是:

var playerSchema = new mongoose.Schema({ 
    name: String, 
    team: mongoose.Schema.Types.ObjectId 
}) 

服務器端

app.post('/players', function(req, res) { 
    Players.find(function(err, players) { 
    res.json(players); 
    }); 
}); 

響應是:

... 
{ 
    "_id": "511a6010e6ca7b0fe0af02ff", 
    "name": "player-1", 
    "team": "511a53e2e6ca7b151c09ce8d" 
} 
... 

,但我想是這樣的:

{ 
    "_id": "511a6010e6ca7b0fe0af02ff", 
    "name": "player-1", 
    "team": { 
    _id: "511a53e2e6ca7b151c09ce8d" 
    name: "team-1" 
    } 
} 

我做錯了什麼? 或者我還沒有真正理解ObjectId?

謝謝!

+1

你會想看看.populate http://mongoosejs.com/docs/populate.html – thtsigma 2013-02-12 15:57:39

+0

是的,謝謝我失去了這一步! – frx08 2013-02-12 16:07:28

回答

1

你只是提取隊員文件的id文件。

因此對於每個玩家你也必須得到團隊文檔。

Players.find(function(err, players) { 
    for(var i in players){ 
     Team.findById(players[i].team,function(error,teams){ 
      players[i].team = teams; 
     }) 
    } 
    res.json(players); 
});