@Grab(group='com.gmongo', module='gmongo', version='0.8') import com.mongodb.* import com.gmongo.* mongo = new GMongo("localhost", 27017) db = mongo.getDB("local") db["stores"].drop() // コレクションにオブジェクトを挿入する col = db["stores"] col.insert([store:"store_A", "sales_timestamp":new GregorianCalendar(2011, 7, 10, 12, 11, 30).getTime(), sales:110]) col.insert([store:"store_B", "sales_timestamp":new GregorianCalendar(2011, 7, 10, 18, 31, 15).getTime(), sales:100]) col.insert([store:"store_C", "sales_timestamp":new GregorianCalendar(2011, 7, 10, 19, 11, 10).getTime(), sales:120]) col.insert([store:"store_A", "sales_timestamp":new GregorianCalendar(2011, 7, 11, 10, 17, 45).getTime(), sales:100]) col.insert([store:"store_B", "sales_timestamp":new GregorianCalendar(2011, 7, 11, 11, 10, 5).getTime(), sales:130]) // MapReduceで日ごとの売上を取得 println col.mapReduce( /* map */ """function(){ emit(this.sales_timestamp.getFullYear() + "/" + (this.sales_timestamp.getMonth() + 1) + "/" + this.sales_timestamp.getDate(), {sales:this.sales}); }""", /* reduce */ """function(key, values){ var total = 0; for(var vi = 0;vi<values.length;vi++){ total += values[vi].sales; } return {sales: total}; }""", /* outputTarget */"mr_result", /* query */ new BasicDBObject() ) // 結果を表示 db.mr_result.find().each { println it }
動作環境
Groovy 1.8.0, JDK6 Update22, gmongo 0.8, MongoDB 2.0
関連情報
gmongoのウェブサイト
https://github.com/poiati/gmongo
groovyとMongoDBのまとめ
0 件のコメント:
コメントを投稿