【问题标题】:Create an association through a single form Mongoose/express通过单一表单 Mongoose/express 创建关联
【发布时间】:2016-12-07 00:52:14
【问题描述】:

通过一个单一的形式,我试图构建一个游戏对象,它包含一个“游戏名称”和一个“游戏长度”,以及一个由 ObjectId 与“玩家”关联的引用。我所拥有的是构建这两个对象,但玩家没有被保存在游戏模型的玩家数组中。感谢您提前提供任何帮助。

架构和模型

游戏模式/模型
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');
   })
})

【问题讨论】:

    标签: node.js mongodb mongoose-schema


    【解决方案1】:

    看来你只需拨打.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');
            });
          })
       })
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-01
      • 1970-01-01
      • 2013-01-10
      • 2019-04-25
      • 2013-03-06
      • 2017-07-21
      • 1970-01-01
      • 2016-06-14
      相关资源
      最近更新 更多