2011年9月23日金曜日

gmongoで範囲を指定しての検索を行う

gmongoでbetween条件のように範囲を指定しての検索を行うには、以下のコードのように2つの条件を指定します。
@Grab(group='com.gmongo', module='gmongo', version='0.8')
import com.mongodb.*
import com.gmongo.*

mongo = new GMongo("localhost", 27017)
db = mongo.getDB("local")
db["sales"].drop()
// コレクションにオブジェクトを挿入する
col = db["sales"]
col.insert([sku:"001", total_sales:100])
col.insert([sku:"002", total_sales:120])
col.insert([sku:"003", total_sales:170])
col.insert([sku:"004", total_sales:80])
col.insert([sku:"005", total_sales:200])
// between 90 and 190相当の検索を実行
for(obj in col.find([total_sales:['$gte':90, '$lte':190]])){
  println obj
}
println "-----"
// Javascript Expressionで同様の検索
for(obj in col.find(
[$where:"this.total_sales >= 90 && this.total_sales <= 190"])){
  println obj
}

動作環境
Groovy 1.8.0, JDK6 Update22, gmongo 0.8, MongoDB 1.8.2

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

groovyとMongoDBのまとめ

0 件のコメント:

コメントを投稿