Skip to content

Instantly share code, notes, and snippets.

@daicham
Created October 21, 2012 06:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save daicham/3926165 to your computer and use it in GitHub Desktop.
Save daicham/3926165 to your computer and use it in GitHub Desktop.
Sample code of MongoDB Aggregtion query
// 日付とカウンタが入ったドキュメントのうち 2012/10/21 のみを時間別に count を集計するクエリ
db.journal.group(
{
//集計対象のドキュメント条件
cond: {
created: {$gte: ISODate("2012-10-21 00:00:00"), $lt: ISODate("2012-10-22 00:00:00")}
},
//集合キーを生成するための関数
keyf: function(doc) {
var time = doc.created.getHours();
return {'time': time};
},
//集計処理
reduce: function(obj, prev) {
prev.csum += obj.count;
},
//集計カウンタ ここで初期化した変数とキーが戻りオブジェクトに格納される
initial: { csum : 0 }
}
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment