2011年5月12日木曜日

gmongoでオブジェクトを削除する

gmongoでオブジェクトを削除するには、以下のコードのようにremoveを使用します。

@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["bugs"].drop()
col = db["bugs"]
// コレクションにオブジェクトを挿入する
col.insert([bugid:"100",
title:"error msg 1000",
description:"errmsg 1000",
ticketstatus:"open"])
col.insert([bugid:"101",
title:"can't login",
description:"I can't login with my account.",
ticketstatus:"closed"])
col.insert([bugid:"102",
title:"crash",
description:"server crashes.",
ticketstatus:"closed"])
// 削除
col.remove([ticketstatus:"closed"])
// 全てのデータを表示
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年5月11日水曜日

groovyとJRedisで複数のkey-valueの操作を行う

groovyとJRedisで複数のkey-valueの操作を行うには、以下のコードを実行します。

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

jrc = new JRedisClient("192.168.1.25", 6379)
// 複数のキーと値の設定
data = ["key1":DefaultCodec.encode("value1"),
"key2":DefaultCodec.encode("value2"),
"key3":DefaultCodec.encode("value3")]
jrc.mset(data)
// 複数のキーの値の取得
for(val in jrc.mget("key1", "key2", "key3")){
println DefaultCodec.toStr(val)
}

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

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

2011年5月10日火曜日

gmongoで複数オブジェクトのフィールドを更新する

gmongoで複数オブジェクトのフィールドを更新するには、以下のコードのように$setを使用します。

@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["bugs"].drop()
col = db["bugs"]
// コレクションにオブジェクトを挿入する
col.insert([bugid:"100",
title:"error msg 1000",
description:"errmsg 1000",
ticketstatus:"open"])
col.insert([bugid:"101",
title:"can't login",
description:"I can't login with my account.",
ticketstatus:"pending"])
col.insert([bugid:"102",
title:"crash",
description:"server crashes.",
ticketstatus:"pending"])
// 複数の行を更新
col.update([ticketstatus:"pending"],
[$set:[ticketstatus:"open"]], false/*= upsert*/,
true /*= 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年5月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.info().each { key, value ->
println "${key} => ${value}"
}

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

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

2011年5月8日日曜日

gmongoで配列フィールドの最後から値を削除する

gmongoで配列フィールドの最後から値を削除するには、以下のコードのように$popを使用します。

@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["unique_user"].drop()
col = db["unique_user"]
// コレクションにオブジェクトを挿入する
col.insert([site:"Site_A", unique_user:100,
tags:["foods","recipe"]])
col.insert([site:"Site_B", unique_user:500,
tags:["news", "programming"]])
col.insert([site:"Site_C", unique_user:1000])
// 配列フィールドの最後から値を削除
col.update([site:"Site_B"],
['$pop':["tags":1]])
// 全てのデータを表示
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年5月7日土曜日

groovyとJRedisでキーの値のタイプを返す

groovyとJRedisでキーの値のタイプを返すには、以下のコードを実行します。

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

jrc = new JRedisClient("192.168.1.25", 6379)
// キーの値のタイプを返す
println jrc.type("key1")

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

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

2011年5月6日金曜日

gmongoでオブジェクトの配列フィールドに値を追加する

gmongoでオブジェクトの配列フィールドに値を追加するには、以下のコードのように$pushを使用します。

@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["unique_user"].drop()
col = db["unique_user"]
// コレクションにオブジェクトを挿入する
col.insert([site:"Site_A", unique_user:100])
col.insert([site:"Site_B", unique_user:500])
col.insert([site:"Site_C", unique_user:1000])
// 配列フィールドに値を追加
col.update([site:"Site_B"],
['$push':["tags":"news,programming"]])
// 全てのデータを表示
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年5月5日木曜日

groovyとJRedisでキー値が存在しない場合のみ値を設定する

groovyとJRedisでキー値が存在しない場合のみ値を設定するには、以下のコードを実行します。

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

jrc = new JRedisClient("192.168.1.25", 6379)
jrc.del("key1")
jrc.del("key2")

jrc.set("key1", "initial")
// キー値が存在しない場合のみ値を設定
jrc.setnx("key1", "value1")
jrc.setnx("key2", "value2")

println DefaultCodec.toStr(jrc.get("key1"))
println DefaultCodec.toStr(jrc.get("key2"))

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

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

2011年5月4日水曜日

gmongoでオブジェクトのフィールドを削除する

gmongoでオブジェクトのフィールドを削除するには、以下のコードのように$unsetを使用します。

@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["unique_user"].drop()
col = db["unique_user"]
// コレクションにオブジェクトを挿入する
col.insert([site:"Site_A", unique_user:100])
col.insert([site:"Site_B", unique_user:500, description:"a news site."])
col.insert([site:"Site_C", unique_user:1000])
// フィールドを削除
col.update([site:"Site_B"],
['$unset':[description:1]])
// 全てのデータを表示
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年5月3日火曜日

groovyとJRedisでキー新しい値を設定して古い値を返す

groovyとJRedisでキー新しい値を設定して古い値を返すには、以下のコードを実行します。

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

jrc = new JRedisClient("192.168.1.25", 6379)
jrc.set("key1", "initial")
// 新しい値を設定して、古い値を返す
println DefaultCodec.toStr(jrc.getset("key1", "updated"))

println DefaultCodec.toStr(jrc.get("key1"))

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

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

2011年5月2日月曜日

gmongoでオブジェクトのフィールドの値をインクリメントする

gmongoでオブジェクトのフィールドの値をインクリメントするには、以下のコードのように$incを使用します。

@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["unique_user"].drop()
col = db["unique_user"]
// コレクションにオブジェクトを挿入する
col.insert([site:"Site_A", unique_user:100])
col.insert([site:"Site_B", unique_user:500])
col.insert([site:"Site_C", unique_user:1000])
// ユニークユーザ数をインクリメント
col.update([site:"Site_A"],
['$inc':[unique_user:1]])
// 全てのデータを表示
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年5月1日日曜日

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")
// スコアを取得する
println jrc.zscore("key1", "value2")

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

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