我有一个MongoDB查询,它根据日期以5分钟为窗口进行分组,并返回计数(即该5分钟窗口中文档的总数,使用count: { $sum: 1 }
)。
我想让查询在特定的5分钟窗口中也返回0的计数,如果该组中不存在文档。然而,目前似乎只返回正计数的组。
当前查询:
const cursor = await collection.aggregate([
{ $sort : { time : 1 } },
{
$match: {
$and: [
{selector: string },
{time: {$gte: timestamp }}
]
}
},
{
$group: {
_id: {
$subtract: [
{ $subtract: [ "$time", 0 ] },
{ $mod: [
{ $subtract: [ "$time", 0 ] },
1000 * 60 * 5
]}
],
},
count: { $sum: 1 }
}
}
])
期望的响应:时间戳及文档总数,包括和为0的文档。
{ _id: 1525162000000, count: 314 }
{ _id: 1523144100000, count: 0 }
{ _id: 1512155500000, count: 54 }
提前致谢!