我有一个收藏ProductViews
:
{
productId: "5b8c0f3204a10228b00a1745",
createdAt: "2018-09-07T17:18:40.759Z"
}
我有一个查询,用于获取特定产品的每日视图:
ProductView.aggregate([
{ $match: { productId } },
{ $project: { day: { $substr: ["$createdAt", 0, 10] } } },
{
$group: {
_id: "$day",
count: { $sum: 1 },
time: { $avg: "$createdAt" },
}
},
{ $sort: { _id: 1 } },
{
$project: {
date: '$_id',
views: '$count',
},
},
]).exec((err, result) => ...)
目前给出:
[
{ date: '2018-09-01', views: 1 },
{ date: '2018-09-02', views: 3 },
{ date: '2018-09-04', views: 2 },
{ date: '2018-09-05', views: 5 },
// ...
]
Issue:
问题是,这个聚合不会返回{ date: '2018-09-03', views: 0 }
与0
意见。这会导致数据显示不正确:[![在此处输入图像描述][1]][1]
结果应如下所示:
[
{ date: '2018-09-01', views: 1 },
{ date: '2018-09-02', views: 3 },
{ date: '2018-09-03', views: 0 }, <=
{ date: '2018-09-04', views: 2 },
{ date: '2018-09-05', views: 5 },
// ...
]
P.S.:最好传入开始和结束日期以根据此范围输出结果
[1]:https://i.stack.imgur.com/uHPBs.png https://i.stack.imgur.com/uHPBs.png