MongoDB中的ObjectId使用
问题描述:
我使用MongoDB的与猫鼬ODM我REST的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?
谢谢!
答
你只是提取队员文件的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);
});
你会想看看.populate http://mongoosejs.com/docs/populate.html – thtsigma 2013-02-12 15:57:39
是的,谢谢我失去了这一步! – frx08 2013-02-12 16:07:28