1

Casbahで elemMatch クエリを実装しようとしてい$gtます$lt

"Testing $gt and $lt in $elemMatch" should "return results" in { 

val TEST = "test"

val db = MongoClient()(TEST)
val collection = db(TEST)

val obj: JsValue = Json.parse("""{ "records" : [{"n" : "Name", "age": 5}]}""")
val doc: DBObject = JSON.parse(obj.toString).asInstanceOf[DBObject]

collection.insert(doc)

val elemMatch = "records" $elemMatch (MongoDBObject("n" -> "Name", "age" $gt 0))
val results = collection.find(elemMatch, MongoDBObject("_id" -> 1))

行に、次のval elemMatchコンパイル時エラーが表示されます。

[error] ...\TestElemMatch.scala:51: ')' expected but integer
 literal found.
[error]         val elemMatch = "records" $elemMatch (MongoDBObject("n" -> "Name", "age" -> $gt 0))
                                                                                   ^

http://docs.mongodb.org/manual/reference/operator/query/elemMatch/

4

1 に答える 1

2

演算子 $gt の使用方法が正しくありません。これでうまくいくはずです

val elemMatch = MongoDBObject("records" -> MongoDBObject("$elemMatch" -> MongoDBObject("n" -> "Name", "age"->MongoDBObject( "$gt"-> 0))))

于 2013-10-16T07:40:45.640 に答える