首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Casbah中的$all算子

Casbah中的$all算子
EN

Stack Overflow用户
提问于 2013-10-14 20:10:54
回答 1查看 132关注 0票数 0

请给我一个例子,说明如何为我的两个$all对象使用elemMatch操作符。

代码语言:javascript
复制
val elemMatch1 = foo()
val elemMatch2 = bar()

如何执行$all( elemMatch1, elemMatch2) ( elemMatch1和elemMatch2中的所有文档)的查询?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-15 08:48:53

我不确定将$all$elemMatch混合起来有多大意义,但是从docs $all中可以看出:

代码语言:javascript
复制
{ <field>: { $all: [ <value> , <value1> ... ] }

$elemMatch如下:

代码语言:javascript
复制
{ array: { $elemMatch: <document> } }

不幸的是,由于$all需要一个列表,而$elemMatch需要一个字符串,因此casbah无法提供帮助,因此您必须手动构建文档:

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19368461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档