2013-07-22 6 views
0

이것은 내 sampale 몽고 문서입니다.mongoDB 배열의 하위 문서 액세스

"Notification" : [ 
     { 
      "date_from" : ISODate("2013-06-30T18:30:00Z"), 
      "date_too" : ISODate("2013-07-23T18:30:00Z"), 
      "description" : "bbbbbbbbbbbbbbb", 
      "url" : "bbbbbbbbbbbbbb" 
     }, 
     { 
      "date_from" : ISODate("2013-07-07T18:30:00Z"), 
      "date_too" : ISODate("2013-07-16T18:30:00Z"), 
      "description" : "ddd", 
      "url" : "ddd" 
     }, 
     { 
      "date_from" : ISODate("2013-07-02T18:30:00Z"), 
      "date_too" : ISODate("2013-07-29T18:30:00Z"), 
      "description" : "cccc", 
      "url" : "cccccccccccccc" 
     } 
    ], 

"알림"에 액세스하려고합니다 : 배열에 3 개의 하위 문서가 있습니다. 각 문서를 개별적으로 검색하려고합니다. 내 자바 코드는 어떤 도움에 감사드립니다

notification=(BasicDBList) f.curr().get("Notification"); 

입니다.

답변

0

BasicDBListBasicBSONList이고, 차례로 ArrayList입니다. 색인을 사용하여 목록에서 개별 요소를 가져올 수 있습니다.

BasicDBList notifications = (BasicDBList) cursor.curr().get("Notification"); 

BasicDBObject first = (BasicDBObject) notifications.get(0); //first document 
BasicDBObject second = (BasicDBObject) notifications.get(1); //second document 
BasicDBObject third = (BasicDBObject) notifications.get(2); //third document 

System.out.println(first.get("description")); // bbbbbbbbbbbbbbb 
System.out.println(second.get("url")); // bbbbbbbbbbbbbb 
대신 그들을 반복 할 수 있습니다

:

for(Object o : notifications) { 
    BasicDBObject obj = (BasicDBObject) o; 
    System.out.println(obj.get("url")); //prints the URL of every document in notifications 
} 
관련 문제