我在该集合字段中的集合是状态。状态为arrayIndex格式。收集样本如下 我必须计算平均值0,1和2后计算我想要的结果这个格式如下所示
{
"result": [
{
"0": 18,
"1": 58,
"2": 24
}
]
}
是否可以以上述格式制作结果。如果是,请建议我如何计算平均值?
答案 0 :(得分:2)
运行聚合操作以获取给定数组中第一,第二和第三状态的平均值的mongodb shell查询如下:
var pipeline = [
{
"$match": {
"Status.0": { $exists: true },
"Status.1": { $exists: true },
"Status.2": { $exists: true }
}
},
{ "$unwind": "$Status" },
{
"$match": {
"Status.0": { $exists: true },
"Status.1": { $exists: true },
"Status.2": { $exists: true }
}
},
{
"$group": {
"_id": null,
"0": { "$avg": "$Status.0" },
"1": { "$avg": "$Status.1" },
"2": { "$avg": "$Status.2" }
}
}
]
db.status.aggregate(pipeline);