以下に示すように、MongoDBコレクション「Marks」があります。
_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をパラメーターとして渡す場合にのみ必要です。誰でも答えを提案してください。