为什么这个MongoDB聚合查询什么都不返回?

时间:2016-10-31 14:08:14

标签: mongodb mongodb-query aggregation-framework

我有以下聚合查询:

db.radars.aggregate([
    {
        $group: {
            _id: '$locationId',
            count: {$sum: 1}
        },
    },
    {
        $match: {
            loggedAt: {
                $gte: new Date('2014-01-01T00:00:00Z'),
                $lte: new Date('2016-12-31T00:00:00Z')
            }
        }
    }
]);

我肯定有符合条件的数据:

enter image description here

但我一无所获:

enter image description here

有谁知道为什么会这样?

1 个答案:

答案 0 :(得分:2)

$group之后,管道将包含仅包含$group_idcount中定义的字段的文档,因此没有{{1要匹配的字段。

因此,根据您要查找的输出,重新排序您的管道以首先执行loggedAt或将$match的累加器添加到您的loggedAt,以便它仍然可用

例如:

$group