0
我有一个猫鼬的模式,看起来像这样:猫鼬场复位
var mongoose = require('mongoose');
var _ = require('lodash');
var Schema = mongoose.Schema;
var shopSchema = new mongoose.Schema({
name: {type: String, trim: true},
description: {type: String, trim: true},
rating: Number,
ratingsData: [{type: Number}]
});
shopSchema.methods.rate = function(rating){
this.ratingsData.push(rating);
this.rating = _.mean(this.ratingsData);
return this.ratingsData;
}
module.exports = mongoose.model('Shop', shopSchema);
率的方法应该追加传递给它的ratingsData字段中的值,然后返回数组的平均值。我遇到的问题是,每次调用该方法时,this.ratingsData
都只是一个空数组。由于某些原因,以前的值不会被保存。因此,我得到的平均值始终是传递给方法的评分。
我在做什么错?
如果您尝试将数据插入到数据库要么做插入或保存到数据库。尝试检索数据并计算平均值之前的事件。我没有看到任何保存功能。 –
你可以在向db插入值之后执行操作。我无法理解你如何在同一时间尝试实现这两件事情。 –