用于更新关系的Mongoose pre或post save hook?

时间:2014-11-30 09:07:48

标签: node.js mongodb mongoose relationship middleware

给出以下具有n对m关系的Schemata:

var CampaignSchema = new Schema({
    name: { type: String },
    players: [{
        type: Schema.ObjectId,
        ref: 'Player'
    }]
});

var PlayerSchema = new Schema({
    name: { type: String },
    campaigns: [{
        type: Schema.ObjectId,
        ref: 'Campaign'
    }]
});

当我创建/更新Campaign文档时,Player文档应与Campaign模型的player数组保持同步。

我在网络上看到很多使用预保存挂钩的示例,更新相应的播放器以在其广告系列数组中包含/排除此广告系列。

但是,我希望post save hook更适合这种更新,因为我可以确定在更新播放器文档之前模型已成功保存。

所以我的问题是: 在选择前/后保存钩子以保持我的关系同步,或者它是无关紧要的只是品味问题时,我有什么需要考虑的吗?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,在自己实施解决方案后,我最终遇到了循环依赖问题。看看这个package,它很容易解决我的问题。