我有一个BasicDBObject
,而调试时似乎有:
{ "_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"));
我得到一个空指针异常。
对我在这里做错了什么的想法?
我想在d_key
内获取_id
的值。
答案 0 :(得分:6)
DBObject和它的孩子不支持点符号获取。你必须这样做:
if(dbObject.containsField("_id"))
((DBOBject)dbObject.get("_id")).get("p_key")
顺便说一下,这是一个非常大的_id领域。这将导致巨大的索引,这通常不是一个好主意。