我在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);
答案 0 :(得分:1)
您可以在架构上定义method以执行两项操作:向ratings
属性添加评级,然后更新averageRatings
属性。然后,您将调用此方法,而不是直接更新ratings
属性。