这几乎肯定会在其他地方有所涉及,但是:
如果我有一个带有嵌入式子文档的模式,如下所示:
var ChildSchema = new Schema ({
name : {
type: String,
trim: true
},
user :{
type: String,
trim: true
}
})
var ParentSchema = new Schema ({
name : {
type: String,
trim: true
},
child : [ChildSchema]
})
如何在同一个.save()动作中将ParentSchema的名称保存到ParentSchema.name和ChildSchema.name?以下内容根本不起作用。
ChildSchema.pre('save', function(next){
this.name = ParentSchema.name;
next();
});
答案 0 :(得分:1)
您可以通过将中间件移动到有权访问自身及其子级的ParentSchema
来实现此目的:
ParentSchema.pre('save', function(next){
var parent = this;
this.child.forEach(function(child) {
child.name = parent.name;
});
next();
});