按天分组
Grouping by days
我想要一个图表来显示每天的购买量。然后,用户应该能够在显示今天、过去 7 天和过去 30 天的购买之间切换
假设我有很多这些(简化的)文件
purchase: {
itemId: 'some id'
createdAt: 'some date..'
}
我想获取一个元素数组,每个元素对应于当天创建'purchase'个文档的次数。
我曾尝试摆弄 mongo 聚合框架,但无法创建管理此问题的查询。
此查询将按天团购
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 来限制文档,以便它 returns 您只购买最近 30 天的文件。
如果您想按月对结果进行分组,请从 ID 中删除 "day"。
我想要一个图表来显示每天的购买量。然后,用户应该能够在显示今天、过去 7 天和过去 30 天的购买之间切换
假设我有很多这些(简化的)文件
purchase: {
itemId: 'some id'
createdAt: 'some date..'
}
我想获取一个元素数组,每个元素对应于当天创建'purchase'个文档的次数。
我曾尝试摆弄 mongo 聚合框架,但无法创建管理此问题的查询。
此查询将按天团购
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 来限制文档,以便它 returns 您只购买最近 30 天的文件。
如果您想按月对结果进行分组,请从 ID 中删除 "day"。