mongoose ODM是否允许您轻松保存关联的两面?

时间:2012-01-28 22:14:43

标签: node.js express mongoose

如果我有两个模型,在Mongoose ODM中具有has_many关系。即。用户属于团队,团队有很多用户:

var User = new Schema({
  username    : {type: String, required: true },
  email       : {type: String, required: true},
  team        : { type: Schema.ObjectId, ref: 'Team'},
  created_at  : {type : Date, default : Date.now},
  updated_at  : {type : Date, default : Date.now}
});

var exports = module.exports = mongoose.model('User', User);

var Team = new Schema({
  name        : {type: String, required: true}, 
  users       : [{ type: Schema.ObjectId, ref: 'User'}], 
  created_at  : {type : Date, default : Date.now},
  updated_at  : {type : Date, default : Date.now}
});

var exports = module.exports = mongoose.model('Team', Team);

...有没有办法告诉Mongoose将user添加到team.users上的user.save({team: team, ...})集合中?或者我只需要在用户模型中使用save()中间件?

我问的原因是,这不是Mongoose文档所涵盖的用例之一,这个功能在rails / mongoid约定中是相当标准的。

1 个答案:

答案 0 :(得分:0)

回答你的问题:你必须自己编写这个功能。

但是,你经历过schema design doc吗?特别是链接与嵌入?通过文档嵌入实现“has_many”关系通常更容易,更有效。