我的猫鼬模式中有三个字段,我只想检索一个字段,该字段将是其他两个字段的平均值。
我尝试使用猫鼬 get ,但我不知道我是否使用正确。
这是我的模式
const schema = new Schema({
totalCarrots: {type: Number},
numberOfRabbits: {type: Number},
average: {
type: Number,
get: function () {
const average = this.totalCarrots / this.numberOfRabbits;
if (average) return Math.ceil(average);
return null;
}
}
});
我希望平均值返回计算值。我该如何存档?
答案 0 :(得分:1)
看起来您实际上根本不需要map
。由于您只是想生成动态值,因此可以在模式的return res.status(401).json({
message: 'Auth failed',
});
上创建自己的方法,如下所示:
res.status(401).json({
message: 'Auth failed',
});
现在,您可以在架构实例上调用此方法:
get
methods
旨在用于实际存储数据的字段,并且在您访问该字段时可以修改该字段。例如,假设我们有一个带有schema.methods.average = function(){
const average = this.totalCarrots / this.numberOfRabbits;
return average ? Math.ceil(average) : null;
}
字段的Product模型。我们的价格以浮动价格存储,出于任何原因,我们希望每次阅读时都舍入该值。这将是const doc = new schema({ totalCarrots: 4, numberOfRabbits: 2 })
doc.average() // should return 2
方法的好地方:
get