我在 Mongoose 模型上有 2 个字段:totalAttempts 和 totalRight。我打算根据它们计算准确度。
totalAttempts: {
type: Number,
default: 1
},
totalRight: {
type: Number,
default: 1
}
这就是我所做的[它不起作用]
accuracy:{
type:Number,
required:function() {return (this.totalRight/this.totalAttempts*100).toFixed(2)}
}
另外,如果我没有在 Accuracy 上设置默认值,我会收到一个错误:
ERROR; While creating new question ..ValidationError: Path `accuracy` is require d.
events.js:163
实现这一目标的正确方法是什么?我已经有了一个有效的解决方案,可以在每次用户请求该模型时获取 totalAttempts 和 totalRight。但我想保存该计算并将信息存储在我的数据库中。
最佳答案
预先保存是正确的方法。将其添加到您的架构中。
ModelSchema
.pre('save', function(next){
this.accuracy = this.totalRight/this.totalAttempts*100).toFixed(2)
next();
});
将
accuracy
定义更改为:accuracy: {
type: Number
}
关于node.js - 基于 Mongoose 中其他两个字段的第三个字段的计算,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43955987/