2011年3月31日木曜日

gmongoで属性の有無を条件としてオブジェクトを検索する

gmongoで属性の有無を条件としてオブジェクトを検索するには、以下のコードのようにfindを使用します。

@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["office_location"].drop()
// コレクションにオブジェクトを挿入する
col = db["office_location"]
col.insert([office:"Tokyo", country:"Japan", sales:100])
col.insert([office:"Sanfrancisco", country:"United States", sales:200])
col.insert([office:"Chicago", country:"United States", sales:300])
col.insert([office:"Sydney", country:"Australia",status:"underConstruction"])
// sales属性を持たないオフィスを検索
for(obj in col.find([sales:['$exists':false]])){
println obj
}
println "----"
// JavaScript Expressionでsales属性を持たないオフィスを検索
for(obj in col.find([$where:"'sales' in this == false"])){
println obj
}

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

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

0 件のコメント:

コメントを投稿