Cha*_*son 2 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')
}
}
}
]);
Run Code Online (Sandbox Code Playgroud)
我肯定有符合条件的数据:
但我什么也没得到:
有谁知道为什么会发生这种情况?
在 后,管道将包含仅包含:$group中定义的字段的文档,因此没有可匹配的字段。$group_idcountloggedAt
因此,根据您正在寻找的输出,重新排序您的管道以执行$match第一个操作或为loggedAt您的管道添加一个累加器$group,以便其仍然可用。
例如:
db.radars.aggregate([
{
$group: {
_id: '$locationId',
count: {$sum: 1},
loggedAt: {$push: '$loggedAt'}
},
},
{
$match: {
loggedAt: { $elemMatch: {
$gte: new Date('2014-01-01T00:00:00Z'),
$lte: new Date('2016-12-31T00:00:00Z')
} }
}
}
]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3412 次 |
| 最近记录: |