2011年4月30日土曜日

gmongoでオブジェクトのupdate、upsertを実行する

gmongoでオブジェクトのupdate、upsertを実行するには、以下のコードのようにupdateを使用します。

@Grab(group='com.gmongo', module='gmongo', version='0.7')
import com.mongodb.*
import com.gmongo.*

mongo = new GMongo("192.168.1.25", 27017)
db = mongo.getDB("local")
db["stores"].drop()
col = db["stores"]
// コレクションにオブジェクトを挿入する
col.insert([country:"Japan", store:"store_A", sales:100])
col.insert([country:"Japan", store:"store_B", sales:120])
col.insert([country:"Japan", store:"store_C", sales:170])
// updateを実行
col.update([country:"Japan", store:"store_A"],
[country:"Japan", store:"store_A", sales:150])
// upsertを実行
col.update([country:"Japan", store:"store_D"],
[country:"Japan", store:"store_D", sales:110],
true/*= upsert */, false/*= multi*/)
// 全てのデータを表示
for(obj in col.find()){
println obj
}

動作環境
Groovy 1.7.8, JDK6 Update24, gmongo 0.7

関連情報
gmongoのウェブサイト
https://github.com/poiati/gmongo
groovyとMongoDBのまとめ

2011年4月29日金曜日

groovyとJRedisでSorted Setの値を削除する

groovyとJRedisでSorted Setの値を削除するには、以下のコードを実行します。

import org.jredis.ri.alphazero.*
import org.jredis.ri.alphazero.support.*

jrc = new JRedisClient("192.168.1.25", 6379)
jrc.del("key1")
// Sorted Setに値を追加
jrc.zadd("key1", 100, "value1")
jrc.zadd("key1", 300, "value3")
jrc.zadd("key1", 200, "value2")
// 値を削除する
jrc.zrem("key1", "value2")
for(elem in jrc.zrange("key1", 0, -1)){
println "value:" + DefaultCodec.toStr(elem)
}

※jredis-core-all-a.0-SNAPSHOT-jar-with-dependencies.jarを
$GROOVY_HOME/libにコピーしておく。

動作環境
groovy 1.7.6, JDK6 Update23, JRedis2.0.0

2011年4月28日木曜日

gmongoでDBを破棄する

gmongoでDBを破棄するには、以下のコードのようにdropDatabaseを使用します。

@Grab(group='com.gmongo', module='gmongo', version='0.7')
import com.mongodb.*
import com.gmongo.*

mongo = new GMongo("192.168.1.25", 27017)
db = mongo.getDB("local2")
// DBを破棄する
db.dropDatabase()


動作環境
Groovy 1.7.8, JDK6 Update24, gmongo 0.7

関連情報
gmongoのウェブサイト
https://github.com/poiati/gmongo
groovyとMongoDBのまとめ

2011年4月27日水曜日

groovyとJRedisでSorted Setの値を降順で取得する

groovyとJRedisでSorted Setの値を降順で取得するには、以下のコードを実行します。

import org.jredis.ri.alphazero.*
import org.jredis.ri.alphazero.support.*

jrc = new JRedisClient("192.168.1.25", 6379)
jrc.del("key1")
// Sorted Setに値を追加
jrc.zadd("key1", 100, "value1")
jrc.zadd("key1", 300, "value3")
jrc.zadd("key1", 200, "value2")
// 逆順で値を取得する
for(elem in jrc.zrevrange("key1", 0, -1)){
println "value:" + DefaultCodec.toStr(elem)
}

※jredis-core-all-a.0-SNAPSHOT-jar-with-dependencies.jarを
$GROOVY_HOME/libにコピーしておく。

動作環境
groovy 1.7.6, JDK6 Update23, JRedis2.0.0

2011年4月26日火曜日

gmongoでビルド情報を取得する

gmongoでビルド情報を取得するには、以下のコードのようにbuildinfoを使用します。

@Grab(group='com.gmongo', module='gmongo', version='0.7')
import com.mongodb.*
import com.gmongo.*

mongo = new GMongo("192.168.1.25", 27017)
admindb = mongo.getDB("admin")
// ビルド情報を取得する
admindb.command(buildinfo:1).each { key, value ->
println key + "=" + value
}


動作環境
Groovy 1.7.8, JDK6 Update24, gmongo 0.7

関連情報
gmongoのウェブサイト
https://github.com/poiati/gmongo
groovyとMongoDBのまとめ

2011年4月25日月曜日

groovyとJRedisでSorted Set内のスコアの範囲で値を取得する

groovyとJRedisでSorted Set内のスコアの範囲で値を取得するには、以下のコードを実行します。

import org.jredis.ri.alphazero.*
import org.jredis.ri.alphazero.support.*

jrc = new JRedisClient("192.168.1.25", 6379)
jrc.del("key1")
// Sorted Setに値を追加
jrc.zadd("key1", 100, "value1")
jrc.zadd("key1", 300, "value3")
jrc.zadd("key1", 200, "value2")
// スコアの範囲で値を取得する
for(elem in jrc.zrangebyscore("key1", 200, 300)){
println "value:" + DefaultCodec.toStr(elem)
}

※jredis-core-all-a.0-SNAPSHOT-jar-with-dependencies.jarを
$GROOVY_HOME/libにコピーしておく。

動作環境
groovy 1.7.6, JDK6 Update23, JRedis2.0.0

2011年4月24日日曜日

gmongoでコレクションの使用状況を表示する

gmongoでコレクションの使用状況を表示するには、以下のコードのようにtopコマンドを使用します。

@Grab(group='com.gmongo', module='gmongo', version='0.7')
import com.mongodb.*
import com.gmongo.*

mongo = new GMongo("192.168.1.25", 27017)
admindb = mongo.getDB("admin")
// コレクションの使用状況を表示
admindb.command("top").each { key, value ->
if( value instanceof Double ){
println key + "=" + value
} else {
println key
value.each { key2, value2 ->
println " " + key2 + "=" + value2
}
}
}


動作環境
Groovy 1.7.8, JDK6 Update24, gmongo 0.7

関連情報
gmongoのウェブサイト
https://github.com/poiati/gmongo
groovyとMongoDBのまとめ

2011年4月23日土曜日

groovyとJRedisでSorted Setの要素数を取得する

groovyとJRedisでSorted Setの要素数を取得するには、以下のコードを実行します。

import org.jredis.ri.alphazero.*
import org.jredis.ri.alphazero.support.*

jrc = new JRedisClient("192.168.1.25", 6379)
jrc.del("key1")
// Sorted Setに値を追加
jrc.zadd("key1", 100, "value1")
jrc.zadd("key1", 200, "value2")
jrc.zadd("key1", 300, "value3")
// Sorted Setの要素数を取得
println jrc.zcard("key1")

※jredis-core-all-a.0-SNAPSHOT-jar-with-dependencies.jarを
$GROOVY_HOME/libにコピーしておく。

動作環境
groovy 1.7.6, JDK6 Update23, JRedis2.0.0

2011年4月22日金曜日

gmongoでデータベースをコピーする

gmongoでデータベースをコピーするには、以下のコードのようにcopydbコマンドを使用します。

@Grab(group='com.gmongo', module='gmongo', version='0.7')
import com.mongodb.*
import com.gmongo.*

mongo = new GMongo("192.168.1.25", 27017)
admindb = mongo.getDB("admin")
db = mongo.getDB("local")
// コレクションの名前を列挙
for( col in db.getCollectionNames() ){
println col
}
// データベースをコピー
admindb.command([copydb:1, fromhost:"192.168.1.25",
fromdb:"local", todb:"local2"]).each { key, value ->
println key + "=" + value
}
db2 = mongo.getDB("local2")
// コレクションの名前を列挙
for( col in db2.getCollectionNames() ){
println col
}


動作環境
Groovy 1.7.8, JDK6 Update24, gmongo 0.7

関連情報
gmongoのウェブサイト
https://github.com/poiati/gmongo
groovyとMongoDBのまとめ

2011年4月21日木曜日

groovyとJRedisでSorted Setの要素のスコアをインクリメントする

groovyとJRedisでSorted Setの要素のスコアをインクリメントするには、以下のコードを実行します。

import org.jredis.ri.alphazero.*
import org.jredis.ri.alphazero.support.*

jrc = new JRedisClient("192.168.1.25", 6379)
jrc.del("key1")
// Sorted Setに値を追加
jrc.zadd("key1", 100, "value1")
jrc.zadd("key1", 200, "value2")
jrc.zadd("key1", 300, "value3")
// スコアをインクリメントする
jrc.zincrby("key1", 1000, "value2")
for(elem in jrc.zrange("key1", 0, -1)){
println "value:" + DefaultCodec.toStr(elem)
}

※jredis-core-all-a.0-SNAPSHOT-jar-with-dependencies.jarを
$GROOVY_HOME/libにコピーしておく。

動作環境
groovy 1.7.6, JDK6 Update23, JRedis2.0.0

2011年4月20日水曜日

gmongoでサーバーのステータスを取得する

gmongoでサーバーのステータスを取得するには、以下のコードのようにserverStatusコマンドを使用します。

@Grab(group='com.gmongo', module='gmongo', version='0.7')
import com.mongodb.*
import com.gmongo.*

mongo = new GMongo("192.168.1.25", 27017)
db = mongo.getDB("local")
// サーバーのステータスを取得
db.command("serverStatus").each { key, value ->
println key + "=" + value
}

動作環境
Groovy 1.7.8, JDK6 Update24, gmongo 0.7

関連情報
gmongoのウェブサイト
https://github.com/poiati/gmongo
groovyとMongoDBのまとめ

2011年4月19日火曜日

groovyとJRedisでSorted Setに値を追加する

groovyとJRedisでSorted Setに値を追加するには、以下のコードを実行します。

import org.jredis.ri.alphazero.*
import org.jredis.ri.alphazero.support.*

jrc = new JRedisClient("192.168.1.25", 6379)
jrc.del("key1")
// Sorted Setに値を追加
jrc.zadd("key1", 100, "value1")
jrc.zadd("key1", 300, "value3")
jrc.zadd("key1", 200, "value2")
// インデックスの範囲で値を取得する
for(elem in jrc.zrange("key1", 0, -1)){
println "value:" + DefaultCodec.toStr(elem)
}

※jredis-core-all-a.0-SNAPSHOT-jar-with-dependencies.jarを
$GROOVY_HOME/libにコピーしておく。

動作環境
groovy 1.7.6, JDK6 Update23, JRedis2.0.0

2011年4月18日月曜日

gmongoでビルドレベルのfeatureを取得する

gmongoでビルドレベルのfeatureを取得するには、以下のコードのようにfeaturesコマンドを使用します。

@Grab(group='com.gmongo', module='gmongo', version='0.7')
import com.mongodb.*
import com.gmongo.*

mongo = new GMongo("192.168.1.25", 27017)
db = mongo.getDB("local")
// ビルドレベルのfeatureを取得する
db.command("features").each { key, value ->
println key + "=" + value
}

動作環境
Groovy 1.7.8, JDK6 Update24, gmongo 0.7

関連情報
gmongoのウェブサイト
https://github.com/poiati/gmongo
groovyとMongoDBのまとめ

2011年4月17日日曜日

groovyとJRedisでセットから値を削除する

groovyとJRedisでセットから値を削除するには、以下のコードを実行します。

import org.jredis.ri.alphazero.*
import org.jredis.ri.alphazero.support.*

jrc = new JRedisClient("192.168.1.25", 6379)
jrc.sadd("key1", "value1")
jrc.sadd("key1", "value2")
jrc.sadd("key1", "value3")
// セットから値を削除する
jrc.srem("key1", "value2")
for(elem in jrc.smembers("key1")){
println "value:" + DefaultCodec.toStr(elem)
}

※jredis-core-all-a.0-SNAPSHOT-jar-with-dependencies.jarを
$GROOVY_HOME/libにコピーしておく。

動作環境
groovy 1.7.6, JDK6 Update23, JRedis2.0.0

2011年4月16日土曜日

gmongoでデータベースの統計情報を取得する

gmongoでデータベースの統計情報を取得するには、以下のコードのようにgetStatsを使用します。

@Grab(group='com.gmongo', module='gmongo', version='0.7')
import com.mongodb.*
import com.gmongo.*

mongo = new GMongo("192.168.1.25", 27017)
db = mongo.getDB("local")
// 統計情報を取得する
db.getStats().each { key, value ->
println key + "=" + value
}

動作環境
Groovy 1.7.8, JDK6 Update24, gmongo 0.7

関連情報
gmongoのウェブサイト
https://github.com/poiati/gmongo
groovyとMongoDBのまとめ
gmongoでコレクションの統計を取得する

2011年4月15日金曜日

groovyとJRedisで複数のセットから差集合のセットを作成する

groovyとJRedisで複数のセットから差集合のセットを作成するには、以下のコードを実行します。

import org.jredis.ri.alphazero.*
import org.jredis.ri.alphazero.support.*

jrc = new JRedisClient("192.168.1.25", 6379)
jrc.sadd("key1", "value1")
jrc.sadd("key1", "value2")
jrc.sadd("key1", "value3")

jrc.sadd("key2", "value2")
jrc.sadd("key2", "value5")
// 複数のセットから差集合のセット作成する
jrc.sdiffstore("rs3", "key1", "key2")
for(elem in jrc.smembers("rs3")){
println "value:" + DefaultCodec.toStr(elem)
}

※jredis-core-all-a.0-SNAPSHOT-jar-with-dependencies.jarを
$GROOVY_HOME/libにコピーしておく。

動作環境
groovy 1.7.6, JDK6 Update23, JRedis2.0.0

2011年4月14日木曜日

gmongoでコレクションをリネームする

gmongoでコレクションをリネームするには、以下のコードを実行します。

@Grab(group='com.gmongo', module='gmongo', version='0.7')
import com.mongodb.*
import com.gmongo.*

mongo = new GMongo("192.168.1.25", 27017)
db = mongo.getDB("local")
db["stores"].drop()
db["sales_by_stores"].drop()
col = db["stores"]
// コレクションにオブジェクトを挿入する
col.insert([country:"Japan", store:"store_A", sales:100])
col.insert([country:"Japan", store:"store_B", sales:120])
col.insert([country:"Japan", store:"store_C", sales:170])
// コレクションをリネーム
col.rename("sales_by_stores")
col = db["sales_by_stores"]
// 全てのデータを表示
for(obj in col.find()){
println obj
}


動作環境
Groovy 1.7.8, JDK6 Update24, gmongo 0.7

関連情報
gmongoのウェブサイト
https://github.com/poiati/gmongo
groovyとMongoDBのまとめ

2011年4月13日水曜日

groovyとJRedisで複数のセットから和集合のセットを作成する

groovyとJRedisで複数のセットから和集合のセットを作成するには、以下のコードを実行します。

import org.jredis.ri.alphazero.*
import org.jredis.ri.alphazero.support.*

jrc = new JRedisClient("192.168.1.25", 6379)
jrc.sadd("key1", "value1")
jrc.sadd("key1", "value2")
jrc.sadd("key1", "value3")

jrc.sadd("key2", "value2")
jrc.sadd("key2", "value5")
// 複数のセットから和集合のセット作成する
jrc.sunionstore("rs2", "key1", "key2")
for(elem in jrc.smembers("rs2")){
println "value:" + DefaultCodec.toStr(elem)
}

※jredis-core-all-a.0-SNAPSHOT-jar-with-dependencies.jarを
$GROOVY_HOME/libにコピーしておく。

動作環境
groovy 1.7.6, JDK6 Update23, JRedis2.0.0

2011年4月12日火曜日

gmongoでユニークインデックスを作成する

gmongoでユニークインデックスを作成するには、以下のコードのようにensureIndexを使用します。

@Grab(group='com.gmongo', module='gmongo', version='0.7')
import com.mongodb.*
import com.gmongo.*

mongo = new GMongo("192.168.1.25", 27017)
db = mongo.getDB("local")
db["stores"].drop()
col = db["stores"]
// ユニークインデックスを作成する
col.ensureIndex(new BasicDBObject([country:true, store:true]),
new BasicDBObject([unique:true]))
// コレクションにオブジェクトを挿入する
println col.insert([country:"Japan", store:"store_A", sales:100])
println col.insert([country:"Japan", store:"store_B", sales:120])
println col.insert([country:"Japan", store:"store_C", sales:170])
// 次のデータはduplicated keyなので挿入されず、エラー表示
println col.insert([country:"Japan", store:"store_A", sales:110])
// 全てのデータを表示
for(obj in col.find()){
println obj
}


動作環境
Groovy 1.7.8, JDK6 Update24, gmongo 0.7

関連情報
gmongoのウェブサイト
https://github.com/poiati/gmongo
groovyとMongoDBのまとめ

2011年4月11日月曜日

groovyとJRedisで複数のセットから積集合のセットを作成する

groovyとJRedisで複数のセットから積集合のセットを作成するには、以下のコードを実行します。

import org.jredis.ri.alphazero.*
import org.jredis.ri.alphazero.support.*

jrc = new JRedisClient("192.168.1.25", 6379)
jrc.sadd("key1", "value1")
jrc.sadd("key1", "value2")
jrc.sadd("key1", "value3")

jrc.sadd("key2", "value2")
jrc.sadd("key2", "value5")
// 複数のセットから積集合のセット作成する
jrc.sinterstore("rs", "key1", "key2")
for(elem in jrc.smembers("rs")){
println "value:" + DefaultCodec.toStr(elem)
}

※jredis-core-all-a.0-SNAPSHOT-jar-with-dependencies.jarを
$GROOVY_HOME/libにコピーしておく。

動作環境
groovy 1.7.6, JDK6 Update23, JRedis2.0.0

2011年4月10日日曜日

gmongoでグループ分けして集計する

gmongoでグループ分けして集計するには、以下のコードのようにgroupを使用します。

@Grab(group='com.gmongo', module='gmongo', version='0.7')
import com.mongodb.*
import com.gmongo.*

mongo = new GMongo("192.168.1.25", 27017)
db = mongo.getDB("local")
db["stores"].drop()
// コレクションにオブジェクトを挿入する
col = db["stores"]
col.insert([country:"Japan", store:"store_A", sales:100])
col.insert([country:"Japan", store:"store_B", sales:120])
col.insert([country:"Japan", store:"store_C", sales:170])
col.insert([country:"United States", store:"store_D", sales:80])
col.insert([country:"United States", store:"store_E", sales:200])
col.insert([country:"United States", store:"store_F", sales:190])
col.insert([country:"United States", store:"store_G", sales:100])
// 国ごとの売上を取得する
for(obj in col.group(/* key */new BasicDBObject([country:true]),
/* condition */new BasicDBObject(),
/* initial */new BasicDBObject([csum:0]),
/* reduce */"function(obj,prev){prev.csum += obj.sales;}"
)){
println obj["country"] + ":" + obj.csum
}


動作環境
Groovy 1.7.8, JDK6 Update24, gmongo 0.7

関連情報
gmongoのウェブサイト
https://github.com/poiati/gmongo

groovyとMongoDBのまとめ

グループ毎の最小値・最大値を求める

2011年4月9日土曜日

groovyとJRedisで複数のセットから差集合を返す

groovyとJRedisで複数のセットから差集合を返すには、以下のコードを実行します。

import org.jredis.ri.alphazero.*
import org.jredis.ri.alphazero.support.*

jrc = new JRedisClient("192.168.1.25", 6379)
jrc.sadd("key1", "value1")
jrc.sadd("key1", "value2")
jrc.sadd("key1", "value3")

jrc.sadd("key2", "value2")
jrc.sadd("key2", "value5")
// 複数のセットから差集合を返す
for(elem in jrc.sdiff("key1", "key2")){
println "value:" + DefaultCodec.toStr(elem)
}

※jredis-core-all-a.0-SNAPSHOT-jar-with-dependencies.jarを
$GROOVY_HOME/libにコピーしておく。

動作環境
groovy 1.7.6, JDK6 Update23, JRedis2.0.0