按天分组

时间:2015-01-14 16:44:49

标签: mongodb

我想要一张图表,显示每天购买的商品数量。然后,用户应该能够在显示今天,过去7天和过去30天的购买之间进行切换

说我有很多这些(简单的)文件

purchase: {
  itemId: 'some id'
  createdAt: 'some date..'
}

我希望获得一系列元素,每个元素都与购买'的次数相对应。发生在那一天的文件。

我试图摆弄mongo聚合框架,但还是无法创建一个管理它的查询。

1 个答案:

答案 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"来自身份。