【发布时间】:2017-09-04 02:52:51
【问题描述】:
我想通过获取 ID 和 NAME 的专用函数计算不同“课程”(“IABD”、NPAD”...)的平均“成绩” strong>(当然)作为集合文档中的参数,结构如下。
{
"_id" : ObjectId("58e8ba731c9f5cc5bf605e27"),
"ID" : 123457,
"name" : "Stack",
"surname" : "Overflow",
"grades" : [
{
"IABD" : [
2,
3,
4,
5
]
},
{
"NPAD*" : [
3.5,
2.5
]
},
{
"SIDB" : [
5,
3.5
]
},
{
"NPAD" : [
5,
2
]
},
{
"IABD" : [
4,
6
]
}
]
}
以下一项不起作用:
db.studenci.aggregate([ { $project: { courseAvg: { $avg: '$grades.NPAD'} } } ])
尝试从通过以下方式获取带有成绩的数组:
function avg(ID,course) { doc = db.collection.find({ID: ID}); doc1 = doc[0]; return doc1.grades[0]; }
但无法挖掘数组值来计算平均值...
一旦我得到想要进行简单 AVG 硬编码的值...
var avg = 0 ;
var summ = 0;
for(var i = 0 ; i < numbers.length ; i++){
summ = summ + numbers[i]};
return summ
}
avg = summ / numbers.length;
return avg;
期待您的回复。
【问题讨论】:
标签: arrays mongodb nested average