4

我正在使用 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)将用于查询那些为空的。

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

有什么想法吗?

我无法更改数据库以使空条目不存在。那是我无法控制的。我可以改为不 casbah,但我真的宁愿不要。

4

2 回答 2

1

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

collection.find("key" $ne None)
于 2014-02-13T23:57:59.447 回答
1
collection.find(MongoDBObject("key" -> MongoDBObject("$ne" -> None)))

这可以完成工作。我也一直坚持这一点

于 2015-02-25T13:56:18.893 回答