【发布时间】:2016-06-25 04:42:16
【问题描述】:
我有一组如下所示的文档:
var schema = new Schema({
name: {type: String, required: true},
gradeLevels: {type: String},
subject: {type: String},
standard: {type: String},
description: {type: String},
price: {type: String},
numberOfInternalReviews: {type: Number},
reviews: [{
content: {type: String},
rating: {type: Number},
user: {type: Schema.Types.ObjectId, ref: 'User'},
userFirstName: {type: String},
softDelete: {type : Boolean}
}],
averageUserRating: {type: Number}
});
我让他们创建了一个汇总公式,用于计算每条评论的平均评分,如下所示:
db.applications.aggregate([
{ $unwind: "$reviews" },
{ $group: { _id: "$_id", reviews: { $push: "$reviews" },
averageUserRating: { $avg: "$reviews.rating" } } },
{ $project: { _id: 0, _id: "$_id", reviews: 1, averageUserRating: 1 } }]);
这确实会根据需要在控制台中生成正确的平均结果。
我需要做的是将结果推送到原始对象的 averageUserRating 字段中。
当我查看应用程序文档时,averageUserRating 仍然返回 null。
我怎样才能做到这一点?
【问题讨论】:
-
你在后台用什么?
-
我在后端使用node.js、express和mongoose
标签: mongodb mongoose mongodb-query