我想在父项maxPrice和minPrice中保存任何子文档的最低和最高价格。这应该由父架构的更新前中间件处理
我的模式
var SubDocSchema = mongoose.Schema({
...
price : Number,
...
});
var ParentDocSchema = mongoose.Schema({
...
name : String,
maxPrice : Number,
minPrice : Number,
subs : { type : [SubDocSchema] },
...
});
SubDocSchema.pre('update', function(){
if(this.getUpdate().$set && this.getUpdate().$set.price){
// get parent, and also update it's min/max price if necessary ...
}
})
ParentDocSchema.pre('update', function(){
if(this.getUpdate().$push && this.getUpdate().$push.children){
// query all children and calc new min/max price and update on parent
}
})
在前置挂钩中,我评论了如何解决此问题。但是我的解决方案在速度和性能方面确实效率很低。我很确定,必须有一种更有效的方法。