Javascript MongoDB聚合始终返回0个值

Javascript MongoDB聚合始终返回0个值,javascript,json,mongodb,mongodb-query,aggregation-framework,Javascript,Json,Mongodb,Mongodb Query,Aggregation Framework,以下查询: [{ $match: { $and: [ {campaignID: "12345"}, {date: "2016-10-18"}, {hour: {$gte: 0}}, {hour: {$lte: 3}} ] }

以下查询:

[{
            $match: {
                $and: [
                    {campaignID: "12345"},
                    {date: "2016-10-18"},
                    {hour: {$gte: 0}},
                    {hour: {$lte: 3}}
                ]
            }
        }
}]
[
        {
            $match: {
                $and: [
                    {campaignID: "12345"},
                    {date: "2016-10-18"},
                    {hour: {$gte: 0}},
                    {hour: {$lte: 3}}
                ]
            }
        },
        {
            $group: {
                _id: campaignID,
                foo:{$sum: "foo"},
                bar:{$sum: "bar"}
            }
        }
]
返回以下(正确)数据:

但以下问题:

[{
            $match: {
                $and: [
                    {campaignID: "12345"},
                    {date: "2016-10-18"},
                    {hour: {$gte: 0}},
                    {hour: {$lte: 3}}
                ]
            }
        }
}]
[
        {
            $match: {
                $and: [
                    {campaignID: "12345"},
                    {date: "2016-10-18"},
                    {hour: {$gte: 0}},
                    {hour: {$lte: 3}}
                ]
            }
        },
        {
            $group: {
                _id: campaignID,
                foo:{$sum: "foo"},
                bar:{$sum: "bar"}
            }
        }
]
返回以下(错误)数据:

“foo”和“bar”都应该是46(10+11+12+13)


我做错了什么?

您应该在字段名中使用$来引用其值

$group: {
    _id: "$campaignID",
    foo:{$sum: "$foo"},
    bar:{$sum: "$bar"}
}

你给你的问题的标题太糟糕了。类似“mongodb聚合始终返回0个值”的内容会更好。