我正在使用Casbah连接并查询Mongo数据库。现在我正在尝试查询值不为null的字段。
使用直接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)
将用于查询空值。
在上面的例子中,我的语法可能略有不同,但应该传达基本的想法。
任何想法?
我无法更改数据库,因此空条目不存在。那是我无法控制的。我可以改为不卡斯巴,但我真的不愿意。
答案 0 :(得分:1)
在scala中,您经常可以使用None作为null。在这里你想要:
collection.find("key" $ne None)
答案 1 :(得分:1)
collection.find(MongoDBObject("key" -> MongoDBObject("$ne" -> None)))
这可以胜任。我也一直坚持这个