gpt4 book ai didi

javascript - 在 MongooseJs 中查找特定类型的平均值

转载 作者:行者123 更新时间:2023-11-28 20:48:11 25 4
gpt4 key购买 nike

我有一个 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找到student_id=111在3个科目中的平均分。我得到了一个解决方案

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 } ]

当我将student_id:111作为参数传递时,我只需要{_id:111,markAvg:7}。请任何人提出答案。

最佳答案

您需要添加 $match元素添加到管道顶部,以将集合中的文档过滤为您想要作为 $group 输入的文档:

Mark.aggregate([
{ $match: { Student_id: 111 } },
{ $group: {
_id: '$Student_id',
markAvg: { $avg: '$Mark'}
}}
], function (err, results) {
if (err) {
console.error(err);
} else {
console.log(results);
}
});

关于javascript - 在 MongooseJs 中查找特定类型的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13067208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com