2012-09-05 168 views
0

我有一個集合。mongodb - 子文檔ID值

look 
{ "_id" : 13.0 , "tenantref" : { "$id" : 3.0}} 

我需要使用java檢索id 3.0的值。 我收到空指針異常。

BasicDBObject field = new BasicDBObject(); 
    BasicDBObject field = new BasicDBObject(); 
    field.put("tenantref.$id", 1); 

    DBCursor cursor = mongo.getDB("number").getCollection("testthree").find(query,field); 

    while (cursor.hasNext()) 
    {  
    System.out.println(cursor.next().get("tenantref.$id")); 
    } 

我得到空指針異常。我如何獲得價值?

+0

在什麼行上發生空指針異常? – Philipp

回答

1
cursor.next().get("tenantref.$id")); 

BasicDBObject的get()函數不支持點語法。您必須手動遍歷對象層次結構。嘗試

((DBObject)cursor.next().get("tenantref")).get("$id");