Scala MongoDB Casbah查询字段不存在或没有特定值

Scala MongoDB Casbah查询字段不存在或没有特定值,scala,mongodb,casbah,Scala,Mongodb,Casbah,我想使用casbah执行一个查询,以查找所有未设置某个字段(该字段不存在)或该字段具有特定值的对象 我试过使用 val query = ("_id.serviceName" $in serviceNames) ++ ($or("element" $exists false), MongoDBObject("element" -> "value"))) 但我得到一个错误: found com.mongodb.casbah.commons.Imports.DBObject required

我想使用casbah执行一个查询,以查找所有未设置某个字段(该字段不存在)或该字段具有特定值的对象

我试过使用

val query = ("_id.serviceName" $in serviceNames) ++ ($or("element" $exists false), MongoDBObject("element" -> "value"))) 
但我得到一个错误:

found com.mongodb.casbah.commons.Imports.DBObject
required (String, Any)
有可能表达这样的疑问吗?
谢谢

看起来这可能是$or右侧值过滤器中的一个bug;它似乎不接受来自$exists DSL语句的预构造DBObject。它肯定应该——我正在内部提交一个bug来修复这个问题;同时,您可以通过手动执行“$exists”语句来构造该语句:

scala> val query = ("_id.serviceName" $in serviceNames) ++ ($or(("element" -> MongoDBObject("$exists" -> false)), ("element" -> "value")))            
query: com.mongodb.casbah.commons.Imports.DBObject = { "$or" : [ { "element" : { "$exists" : false}} , { "element" : "value"}] , "_id.serviceName" : { "$in" : [ "foo" , "bar" , "baz" , "bah"]}}
很抱歉给你添麻烦。。。我已经为此创建了一个新版本,以便在下一版本中进行更正