gpt4 book ai didi

javascript - Mongoose 如何向模型架构添加一个方法,该方法在每次更新或创建文档时执行?

转载 作者:太空宇宙 更新时间:2023-11-04 00:50:14 24 4
gpt4 key购买 nike

我有一个 Mongoose 模式,其结构有点像这样 -

var SaleSchema = new Schema({
name: String,
creation_datetime: {type: Date, default: Date.now},
account_from: {type: Schema.ObjectId, ref:'Account'},
account_to: {type: Schema.ObjectId, ref:'Account'},
transaction: {
items: [{
ref: {
type: Schema.ObjectId, ref:'Item'
},
name: {
type: String
},
quantity: {
type: Number
},
cost: {
type: Number
},
discount: {
type: Number
},
pricePerUnit: {
type: Number
}
}],
name: String
},
paid: {type:Number, default: 0},
total: {type:Number, default: 0}
});

module.exports = mongoose.model('Sale', SaleSchema);

所以,我想做的是在每次保存或编辑项目数组时计算项目数组中每个项目的总成本和成本。我可以在 Controller 函数中执行此操作,但我不想在该函数中添加额外的复杂性,所以有什么方法可以附加一个可以为我执行此操作的 pre 方法吗?

最佳答案

您可以像下面一样使用并更新您的文档:

SaleSchema.pre('save', function(next) {
// do stuff
next();
});

来源: http://mongoosejs.com/docs/api.html#schema_Schema-pre

关于javascript - Mongoose 如何向模型架构添加一个方法,该方法在每次更新或创建文档时执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32930432/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com