0
您能否給我舉一個例子,說明如何在我的兩個elemMatch
物件上使用$all
運營商?
val elemMatch1 = foo()
val elemMatch2 = bar()
我怎麼能執行$all(elemMatch1, elemMatch2)
查詢(所有文件,其中elemMatch1和elemMatch2)?
您能否給我舉一個例子,說明如何在我的兩個elemMatch
物件上使用$all
運營商?
val elemMatch1 = foo()
val elemMatch2 = bar()
我怎麼能執行$all(elemMatch1, elemMatch2)
查詢(所有文件,其中elemMatch1和elemMatch2)?
我不知道它讓多少意義的混合$all
和$elemMatch
但是從文檔$all
如下:
{ <field>: { $all: [ <value> , <value1> ... ] }
$ elemMatch如下:
{ array: { $elemMatch: <document> } }
不幸的是,卡斯巴DSL韓元因爲$all
需要一個列表,並且$elemMatch
需要一個字符串,所以您必須手動創建文檔:
import com.mongodb.casbah.Imports._
val coll = MongoClient()("test")("testB")
coll += MongoDBObject("array" -> List(
MongoDBObject("value1" -> 1, "value2" -> 0),
MongoDBObject("value1" -> 1, "value2" -> 2)
))
val elemMatch = MongoDBObject("$elemMatch" -> MongoDBObject("value1" -> 1, "value2" -> 2))
val query = "array" $all List(elemMatch)
coll.find(query).count