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个值”的内容会更好。