私は次のように事前に集約されたコレクションを持っています:
DAILY_ANALYTIC.update(
{
"_id": id_daily,
"metadata": {"date": d,},
},
{
"$inc": {
"call_daily": 1,
"call_hourly.%d" % (hour,): 1,
"call_minute.%d.%d" % (hour, minute,): 1,
}
}, upsert=True)
call_hourly データでグループ化を行いたいのですが、そのために次の方法を試しましたが、気にしませんでした
[
{'$match': query_var},
{'$group': {
'_id': {'$substr': ['$_id', 0, 8]},
'call_per_hour': {'$addToSet' : '$call_hourly'},
}
},
{'$project': {
'call_per_hour': 1,
}
},
{'$sort': {
'_id': -1,
}
}
]
次のような結果を得る方法
data['result'] = {'_id': '20121102', 'call_per_hour':[{u'3': 5, u'12': 6}]}
また
data['result'] = {'_id': '20121102', 'call_per_hour':[{u'0': 5, u'1': 6, u'2': 4,....,u'23': 2}]}