2012-09-05 6 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

null 포인터 예외는 어떤 행에서 발생합니까? – Philipp

답변

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

BasicDBObject의 get() 함수는 도트 구문을 지원하지 않습니다. 직접 객체 계층 구조를 탐색해야합니다. 시도해보십시오.

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