javascript - Mongoose 模型 : calculate and automatically update average rating

标签 javascript node.js mongoose

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

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);

最佳答案

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

关于javascript - Mongoose 模型 : calculate and automatically update average rating,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48773106/

相关文章:

javascript - Three.js - 正交相机

javascript - Mongodb 查看数组中的所有项目是否存在并更新,否则插入

Javascript pdfKit "Error: write after end"由于关闭流...?

javascript - Object.defineProperty 覆盖只读属性

javascript - 更改 MongoDB 文档/对象中的所有 MongoDB 对象 ID

node.js - Mongoose 按子值排序

javascript - 使用 typeof 进行输入验证

javascript - react 中图像叠加的基础 6 网格问题

javascript - 从 Firebug Profiler 中排除文件?

node.js - 如何使用 mongoose 将其他属性添加到 mongoDB 找到的文档中?