2016-09-17 103 views
0

我已經創建了下面的模式:在莫戈填充陣列

var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 
var Player = require('./player'); 

var gameSchema = new Schema({ 

    created_at: Date, 
    nrOfCards: String, 
    players: [{ 
      sticks: String, 
      player: { 
       type: mongoose.Schema.Types.ObjectId, 
       ref: 'Player' 
      } 
     }], 

}); 

var Game = mongoose.model('Game', gameSchema); 

節省部分工作正常,並已保存的對象可能是這個樣子:

"_id": "57dd11aca0c36114588fd250", 
    "nrOfCards": "3", 
    "__v": 0, 
    "players": [ 
     { 
     "_id": "57d415e527c20f3ed2416e05", 
     "age": "33" 
     }, 
     { 
     "_id": "57d417df2186d53f3d49c996", 
     "age": "73" 
     }, 
     { 
     "_id": "57d41d85ec315d4234010c7d", 
     "age": "20" 
     } 
    ] 
    }, 

後救的對象我會喜歡讓它在播放器字段填充的情況下返回。這裏是我的嘗試:

app.post('/api/games', function(req, res) { 

     Game.create({ 
      players : req.body.activePlayers, 
      nrOfCards: req.body.nrOfCards, 
     }, function(err, game) { 
      if (err) { 
       res.send(err); 
      } else { 
       Game.findOne(game) 
        .populate('players.player') 
        .exec(function (err, newgame) { 
        if (err) return handleError(err); 
        console.log(newgame); 
         res.json(newgame); 
        }); 
      } 
     }); 
    }); 

以爲.populate('players.player')應該做的伎倆,但我收到含有player只的_id的無人居住的領域。

提示讚賞。謝謝!

回答

0

使用

player: { type: Schema.Types.ObjectId, ref: 'Player' }

到您的架構。