如何解决MongoDB Casbah查询字段不存在或没有特定值
| 我想使用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的右侧值过滤器中的错误。它似乎不接受$ exists DSL语句中的预构造DBObject。绝对应该-我正在内部提交一个错误来解决此问题;同时,您可以通过手动执行“ $ 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\"]}}
很抱歉给您带来麻烦...我已经为此创建了一个错误条目,以更正下一个版本。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。