如何使用Mongo编写特定的聚合查询?

时间:2013-06-13 12:07:08

标签: mongodb aggregation-framework

我有一系列文件,这些文件以下列格式存储:

{
     '_id': 'bdfc0e7a-720d-49d5-86e4-bce4056b334f',
     'agent_id': '69717061b28611e29c6410ddb1b42209',
     'campaign_id': 'huts1371065967012',
     'data': None,
     'metric': 'SESSION_START',
     'screen_id': 'piece',
     'session_id': '57753353-8cfe-4f6d-88bd-ecfef65b5afd',
     'timestamp': 1352947632.59
}

我希望能够使用聚合框架来提取首先由度量键分组的数据,其次使用基于用户选择的时间戳键来提取不同的时间/日期范围。用户将被允许按小时,天,周或月分组......

目标是获取按用户选择的分组时间(小时,日,周,月)细分的单个指标的计数。为此,我想我必须将时间戳键从浮点转换为某种类型的日期对象才能完成此操作?

我希望看到的聚合结果的一个例子(在这个特定的例子中每小时分组一次):

{
     'ok': 1.0,
     'result': [
          {
               '_id': 'SESSION_START_1/1/2013_00',
               'metric': 'SESSION_START',
               'count': 34,
               'timeframe': '1/1/2013 00'
          },
          {
               '_id': 'SESSION_START_1/1/2013_01',
               'metric': 'SESSION_START',
               'count': 15,
               'timeframe': '1/1/2013 01'
          },...
     ]
}

有没有简单的方法可以做到这一点?

由于

0 个答案:

没有答案