@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["articles"].drop() // コレクションにオブジェクトを挿入する col = db["articles"] col.insert([url:"http://www.foo.com", tags:["groovy", "java"]]) col.insert([url:"http://www.bar.com", tags:["PHP"]]) col.insert([url:"http://www.baz.com", tags:["groovy"]]) // MapReduceでタグ毎の記事数を取得 println col.mapReduce( /* map */ """function(){ for(var tl=0;tl<this.tags.length;tl++){ emit(this.tags[tl], {count:1}); } }""", /* reduce */ """function(key, values){ var total = 0; for(var vi = 0;vi<values.length;vi++){ total += values[vi].count; } return {count: 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 件のコメント:
コメントを投稿