通过单一形式Mongoose / express创建关联

时间:2016-12-06 02:24:46

标签: node.js mongodb mongoose-schema

通过单一表单,我尝试构建一个游戏对象,其中包含一个游戏名称'和一个' game_length',以及一个由ObjectId组成的参考关联'播放&#39 ;.我所拥有的是构建两个对象但玩家没有被保存在游戏模型中的玩家阵列中。感谢您提前提供任何帮助。

架构和模型

游戏模式/模型
var gameSchema = new mongoose.Schema({
  course_name: String,
  game_length: Number,
  players: [{
    type: mongoose.Schema.Types.ObjectId,
    ref: 'Game'
  }],
  created: {type: Date, default: Date.now}
})
var Game = mongoose.model('Game', gameSchema);
玩家架构/模型
var playerSchema = new mongoose.Schema({
  player_name: String,
})
var Player = mongoose.model('Player', playerSchema);

邮政路线

app.post('/games', function(req, res){
Game.create(req.body.game, function(err, newGame){
      if (err) console.log(err);
      Player.create(req.body.player, function(err, newPlayer){
        if (err) console.log(err);
        newGame.players.push(newPlayer);
      })
      res.redirect('games');
   })
})

1 个答案:

答案 0 :(得分:0)

看起来您只需要致电.save

app.post('/games', function(req, res){
Game.create(req.body.game, function(err, newGame){
      if (err) console.log(err);
      Player.create(req.body.player, function(err, newPlayer){
        if (err) console.log(err);
        newGame.players.push(newPlayer);
        newGame.save(function(err) {
          if (err) return console.log(err);
          // saved!
          res.redirect('games');
        });
      })
   })
})