У меня есть набор документов, который выглядит следующим образом:MongoDB, использующий совокупный средний результат
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.
Как я могу это сделать?
Что вы используете в заднем конце? – AndreaM16
Я использую node.js, express и mongoose на заднем конце – wjfieseler