我正在尝试在mongoDb中聚合数据。 该请求非常有效:
db.getCollection('map').aggregate([
{
$group: {
_id: "$Support",
gross: { $sum :"$Budget.Gross"},
}}
])
但是,我希望有这样的东西:
db.getCollection('map').aggregate([
{
$group: {
_id: "$Support",
Budget: { gross: { $sum :"$Budget.Gross"}},
}}
])
这行不通,他说:“预算字段必须是一个累加器对象”。 我了解为什么无法以这种方式进行。 MongoDb不知道如何汇总{总额:{$ sum:“ $ Budget.Gross”}}。
但是,有什么方法可以得到这样的结果吗?
谢谢您的帮助
答案 0 :(得分:1)
您必须使用$projection
来相应地调整输出的形状
db.getCollection('map').aggregate([
{ "$group": {
"_id": "$Support",
"gross": { "$sum": "$Budget.Gross" },
}},
{ "$project": {
"Budget": { "gross": "$gross" }
}}
])