【问题标题】:Grouping by days按天分组
【发布时间】:2015-01-15 01:58:29
【问题描述】:

我想要一个图表来显示每天进行了多少购买。然后,用户应该能够在显示今天、过去 7 天和过去 30 天的购买之间切换

假设我有很多这些(简化的)文档

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

我想获取一个元素数组,每个元素对应于当天创建的“购买”文档的发生次数。

我曾尝试摆弄 mongo 聚合框架,但无法创建管理它的查询。

【问题讨论】:

    标签: mongodb


    【解决方案1】:

    此查询将按天团购

    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 天的购买。

    如果您想按月份对结果进行分组,请从 id 中删除“天”。

    【讨论】:

      猜你喜欢
      • 2018-07-08
      • 1970-01-01
      • 2014-05-16
      • 1970-01-01
      • 1970-01-01
      • 2012-04-26
      • 2021-12-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多