2

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"));

null ポインター例外が発生します。

ここで私が間違っていることについて何か考えはありますか?

d_keyinsideの値を取得しようとしています_id

4

1 に答える 1

6

DBObject とその子は、ドット表記の get をサポートしていません。あなたがしなければならないでしょう:

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

ちなみに、これは非常に大きな _id フィールドです。これにより、一般的には良い考えではない巨大なインデックスが作成されます。

于 2012-02-14T09:22:28.293 に答える