Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js MongoDB对象ID用法_Node.js_Mongodb_Mongoose_Objectid - Fatal编程技术网

Node.js MongoDB对象ID用法

Node.js MongoDB对象ID用法,node.js,mongodb,mongoose,objectid,Node.js,Mongodb,Mongoose,Objectid,我正在将MongoDB与Mongoose-ODM一起用于我的nodejsrest项目: 我的模式是: var playerSchema = new mongoose.Schema({ name: String, team: mongoose.Schema.Types.ObjectId }) ... { "_id": "511a6010e6ca7b0fe0af02ff", "name": "player-1", "team": "511a53e2e6ca7b151c0

我正在将MongoDBMongoose-ODM一起用于我的nodejsrest项目:

我的模式是:

var playerSchema = new mongoose.Schema({
    name: String,
    team: mongoose.Schema.Types.ObjectId
})
...
{
  "_id": "511a6010e6ca7b0fe0af02ff",
  "name": "player-1",
  "team": "511a53e2e6ca7b151c09ce8d"
}
...
和服务器端:

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

var playerSchema = new mongoose.Schema({
    name: String,
    team: mongoose.Schema.Types.ObjectId
})
...
{
  "_id": "511a6010e6ca7b0fe0af02ff",
  "name": "player-1",
  "team": "511a53e2e6ca7b151c09ce8d"
}
...
但我想要的是:

{
  "_id": "511a6010e6ca7b0fe0af02ff",
  "name": "player-1",
  "team": {
    _id: "511a53e2e6ca7b151c09ce8d"
    name: "team-1"
  }
}
我做错了什么? 或者我还没有真正理解ObjectId


谢谢

您只获取id为team document的玩家文档

因此,对于每一名球员,你也必须获得队医

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);
});

您仅获取id为team document的玩家文档

因此,对于每一名球员,你也必须获得队医

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);
});

你会想退房的。是的,谢谢,我失去了这一步!你会想退房的。是的,谢谢,我失去了这一步!