【发布时间】:2014-11-30 09:07:47
【问题描述】:
给定以下具有 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 数组保持同步。
我在网上看到了很多使用 pre save hook 的例子,更新相应的玩家以在他们的活动数组中包含/排除这个活动。
但是,我希望 post save 挂钩更适合进行此类更新,因为我可以确定在更新播放器文档之前已成功保存模型。
所以我的问题是: 在选择前/后保存挂钩以保持我的关系同步时,我有什么需要考虑的吗?还是无关紧要,只是个人喜好问题?
【问题讨论】:
标签: node.js mongodb mongoose relationship middleware