我有一个 MongoDB 集合“标记”,如下所示
_id Student_id Subject Mark
1 111 AAA 9
2 111 BBB 5
3 111 CCC 7
4 222 AAA 10
5 222 CCC 6
6 222 BBB 8
我需要使用MONGOOSEJS在 3 个科目中找到 student_id=111 的平均分数。我有一个解决方案
var Mark = mongoose.model('mark', new Schema({
Student_id: Number,
Subject: String,
Mark: Number
}));
Mark.aggregate([
{ $group: {
_id: '$Student_id',
markAvg: { $avg: '$Mark'}
}}
], function (err, results) {
if (err) {
console.error(err);
} else {
console.log(results);
}
}
);
输出是
[ { _id: 222, markAvg: 8 }, { _id: 111, markAvg: 7 } ]
只有{_id:111,markAvg:7}
当我将 student_id:111 作为参数传递时,我才想要。请任何人提出答案。