2012-02-14 5 views
2

J'ai un BasicDBObject qui pendant le débogage semble tenir:notation dot MongoDB requête

{ "_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"}} 

Maintenant, lorsque je tente:

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

je reçois une exception de pointeur nul.

Des pensées sur ce que je fais mal ici? J'essaie d'obtenir la valeur de d_key à _id.

Répondre

6

DBObject et ses enfants ne supportent pas la notation par points. Vous devrez faire:

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

C'est un champ _id extrêmement grand d'ailleurs. Il en résultera des index énormes, ce qui n'est généralement pas une bonne idée.

Questions connexes