2

我有一个BasicDBObjectwhich while 调试似乎成立:

{ "_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_keyinside的价值_id

4

1 回答 1

6

DBObject 及其子对象不支持点符号获取。你将不得不做:

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

顺便说一下,这是一个非常大的 _id 字段。这将导致巨大的索引,这通常不是一个好主意。

于 2012-02-14T09:22:28.293 回答