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

0 件のコメント:

コメントを投稿