我想要一张图表,显示每天购买的商品数量。然后,用户应该能够在显示今天,过去7天和过去30天的购买之间进行切换
说我有很多这些(简单的)文件
purchase: {
itemId: 'some id'
createdAt: 'some date..'
}
我希望获得一系列元素,每个元素都与购买'的次数相对应。发生在那一天的文件。
我试图摆弄mongo聚合框架,但还是无法创建一个管理它的查询。
答案 0 :(得分:2)
此查询将按日分组购买
db.purchases.aggregate([
{$match: {createdAt: {$gte: new Date(2014, 0, 1)}}},
{$group: {_id: {year : {$year :'$createdAt'},
month: {$month :'$createdAt'}
day: {$dayOfMonth: '$createdAt'}
},
count: {$sum: 1}
}
])
您可以尝试通过调整$ match来限制文档,以便仅从过去30天返回购买。
如果您想按月对结果进行分组,请删除" day"来自身份。