2012-02-14 79 views
2

我有一個BasicDBObject這在調試時似乎主張:MongoDB的點號查詢

{ "_id" : { "p_key" : { "$date" : "2012-02-02T00:00:00Z"} , "d_key" : 222} , "t_key" : 10195 , "w_key" : 4 , "f_key" : { "$date" : "2012-02-02T00:00:00Z"}} 

現在,當我嘗試:

dbObject.get("_id.d_key")); 

我得到一個空指針異常。

我在做什麼錯在這裏有什麼想法嗎?

我試圖在_id的內部得到d_key的值。

回答

6

DBObject和它的孩子不支持點符號獲取。你必須這樣做:

if(dbObject.containsField("_id")) 
    ((DBOBject)dbObject.get("_id")).get("p_key") 

這是一個非常大的_id字段的方式。這將導致巨大的指數,這通常不是一個好主意。