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のまとめ

0 件のコメント:

コメントを投稿