【问题标题】:Querying for null using Casbah使用 Casbah 查询 null
【发布时间】:2013-08-22 19:37:57
【问题描述】:

我正在使用 Casbah 连接和查询 Mongo 数据库。现在我正在尝试查询值不为空的字段。

使用直接的 Mongo 语法,我想要的查询是 collection.find({"key" : {$ne : null }} )

在 casbah 中,我尝试过无法编译的 collection.find("key" $ne null) 和在运行时引发空指针异常的 collection.find("key" $ne MongoDBObject(null)),以及实际上无法正确查询的 collection.find("key" $ne org.bson.BSON.NULL)

collection.find("key" -> null) 将用于查询那些为空的。

我的语法在上面的例子中可能有点偏离,但应该传达基本思想。

有什么想法吗?

我无法更改数据库以使空条目不存在。那是我无法控制的。我可以改成 not casbah,但我真的不想这样做。

【问题讨论】:

    标签: null casbah


    【解决方案1】:

    你可以经常在 scala 中使用 None 作为 null。在这里你想要:

    collection.find("key" $ne None)
    

    【讨论】:

    • 这不起作用:“错误:None.type 不是有效的查询参数。”
    • @PhilippSander 很糟糕,我很确定它在某一时刻有效。从那以后,我从我工作的所有服务器上烧掉了所有 MongoDB 实例,并从我的大脑中烧掉了所有 MongoDB 知识以使用更好的数据存储。祝你好运!
    【解决方案2】:
    collection.find(MongoDBObject("key" -> MongoDBObject("$ne" -> None)))
    

    这可以完成工作。我也一直卡在这个问题上

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-16
      • 1970-01-01
      • 2018-09-12
      相关资源
      最近更新 更多