Похоже, что это может быть ошибка в правом фильтре значений для $ или; похоже, он не принимает предварительно сконструированный объект DBObject из оператора DSL $ существующие. Это определенно должно --- Я фиксирую ошибку внутри, чтобы исправить это; тем временем вы можете сконструировать это, выполнив вручную оператор "$ exist":
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"]}}
Извините за беспокойство ... Я создал запись ошибки , чтобы исправить это в следующем выпуске.