按天分组

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"。