2013-08-22 41 views
4

我使用Casbah連接並查詢Mongo數據庫。現在我試圖查詢值不爲空的字段。使用Casbah查詢空值

使用直蒙戈語法,我想查詢將collection.find({"key" : {$ne : null }})

在卡斯巴,我已經試過collection.find("key" $ne null),不編譯和collection.find("key" $ne MongoDBObject(null))其拋出在運行時一個空指針異常,以及collection.find("key" $ne org.bson.BSON.NULL)這實際上並沒有正確查詢。

collection.find("key" -> null)將工作來查詢那些爲空。

在上面的例子中,我的語法可能有點微妙,但應該傳達基本的想法。

任何想法任何人?

我無法更改數據庫,因此空條目不存在。這是我無法控制的。我可以改變爲非casbah,但我真的不想。

回答

1

你可以在scala中經常使用None作爲null。在這裏,你想:

collection.find("key" $ne None) 
+1

這不工作:「錯誤:None.type不是一個有效的查詢參數。」 –

+0

@PhilippSander無賴,它在一個點上工作,我很確定。之後,我從所有服務器上燒錄了所有MongoDB實例,並從我的大腦中燒錄了所有MongoDB知識,以便使用更好的數據存儲。祝你好運! – bwawok

1
collection.find(MongoDBObject("key" -> MongoDBObject("$ne" -> None))) 

這做這項工作。我一直在堅持這一點