我有一个数据集合,其中包含以下形状的数据:
[ {_id: "1",
aa1: 45, aa2: 56,
bb1: 90, bb2: 78,
cc1: 34, cc2: 98 },
{_id: "2",
aa1: 76, aa2: 56,
bb1: 45, bb2: 67,
cc1: 75, cc2: 87 } ]
在这个数据上,我执行了一个 MongoDB 聚合管道:
db.colleciton.aggregate([
{ $project: {
"_id": "$_id",
"aaa": { $avg: ["$aa1","$aa2"] },
"bbb": { $avg: ["$bb1","$bb2"] },
"ccc": { $avg: ["$cc1","$cc2"] }
}
},
{ $group: {
"_id": "AvgCalc",
"aaa": { $avg: "$aaa" },
"bbb": { $avg: "$bbb" },
"ccc": { $avg: "$ccc" }
}
}
])
这给出了我的结果格式:
[ {_id: "AvgCalc",
aaa: 67,
bbb: 55,
ccc: 90} ]
我想在聚合中将其转换为我的结果:
[ {field: "aaa", value: 67},
{field: "bbb", value: 55},
{field: "ccc", value: 90} ]
有没有办法通过聚合来实现这一点?我想将此添加为管道的最后阶段。我尝试添加一个 $project 阶段但没有成功。