2012-02-14 82 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字段的方式。这将导致巨大的指数,这通常不是一个好主意。