Mongoose模型:计算并自动更新平均评级

时间:2018-02-13 18:15:39

标签: javascript node.js mongoose

我在Mongoose中有一个Movie模型,它有一个等级键,它是一个数字数组。我正在寻找一种方法,我可以添加到这个模式,当我向数组添加新的评级时自动计算平均评级。有谁知道这是怎么做的?

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var schema = new Schema({
    title: String,
    actors: String,
    director: String,
    length: Number,
    description: String,
    genre: String,
    country: String,
    year: Number,
    ratings: [],
    averageRating: Number,
    reviews: [{type: Schema.Types.ObjectId, ref: 'Review'}],
    pictureUrl: String
}, { usePushEach: true });

module.exports = mongoose.model('Movie', schema);

1 个答案:

答案 0 :(得分:1)

您可以在架构上定义method以执行两项操作:向ratings属性添加评级,然后更新averageRatings属性。然后,您将调用此方法,而不是直接更新ratings属性。