1

尝试将以下 mongo 控制台查询转换为 casbah/scala 的 DSL。

db.campaign.find({ "space.id": { $exists: true, $in: ["123","456"] } })

我想出的最好的方法是使用 or 代替。

$or("space.id" $exists false, "space.id" $in restrictedSpaces)

只是寻找有更多经验的人(阅读任何内容),说这是正确的方法,或者有更好的方法来解决这个问题。

谢谢,亚伦

4

1 回答 1

1

啊哈..

对于发布可能是一个愚蠢的问题,我深表歉意。答案似乎是没有必要做我所做的事情。

Mongo 似乎足够聪明,可以在该字段不存在时忽略 $in,而我希望它会抛出一个错误,通知我文档没有该字段,因此是我最初的问题。

以下简单的查询有效并说明了 DSL 和 mongo 的简单性和性能。

"space.id" $in restrictedSpaces

注意:restrictedSpaces 是一个字符串列表。

谢谢,亚伦

于 2013-10-31T13:03:43.063 回答