请给我一个例子,说明如何为我的两个$all对象使用elemMatch操作符。
val elemMatch1 = foo()
val elemMatch2 = bar()如何执行$all( elemMatch1, elemMatch2) ( elemMatch1和elemMatch2中的所有文档)的查询?
发布于 2013-10-15 08:48:53
我不确定将$all和$elemMatch混合起来有多大意义,但是从docs $all中可以看出:
{ <field>: { $all: [ <value> , <value1> ... ] }$elemMatch如下:
{ array: { $elemMatch: <document> } }不幸的是,由于$all需要一个列表,而$elemMatch需要一个字符串,因此casbah无法提供帮助,因此您必须手动构建文档:
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).counthttps://stackoverflow.com/questions/19368461
复制相似问题