您能否举个例子说明如何将$all
运算符用于我的两个elemMatch
对象?
val elemMatch1 = foo()
val elemMatch2 = bar()
如何执行$all( elemMatch1, elemMatch2)
(elemMatch1 和 elemMatch2 的所有文档)的查询?
您能否举个例子说明如何将$all
运算符用于我的两个elemMatch
对象?
val elemMatch1 = foo()
val elemMatch2 = bar()
如何执行$all( elemMatch1, elemMatch2)
(elemMatch1 和 elemMatch2 的所有文档)的查询?
我不确定混合有多大意义$all
,$elemMatch
但是从文档中$all
可以看出:
{ <field>: { $all: [ <value> , <value1> ... ] }
$elemMatch 如下:
{ array: { $elemMatch: <document> } }
不幸的是,casbah 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