【问题标题】:Mongoose model: calculate and automatically update average ratingMongoose 模型:计算并自动更新平均评分
【发布时间】:2018-07-24 04:40:48
【问题描述】:

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

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

【问题讨论】:

  • getters / setters 也许?

标签: javascript node.js mongoose


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-31
    • 1970-01-01
    • 1970-01-01
    • 2017-12-03
    • 1970-01-01
    • 2018-01-04
    • 2021-01-19
    • 2015-08-27
    相关资源
    最近更新 更多