2012-06-11 37 views
1

我是新來mongoDB.And我想在JSON的時間所有的值,如:如何在mongodb中查找innerattributes的值?

{ "_id" : { "$oid" : "4ceb753a70fdf877ef5113ca"}, "LoginRequest" : { "Time" : "11-06-2012 11:59:33", "innerAttr4" : "innerValue4"} } 
{ "_id" : { "$oid" : "4ceb753a70fdf877ef5113cb"}, "LoginRequest" : { "Time" : "11-06-2012 12:34:05", "innerAttr4" : "innerValue4"} } 

搜索,我發現用點號之後。但是在java中,點符號不適用於我。有人能告訴我如何做到這一點?

我以這種方式使用了點表示法。但它返回null。

 String selectedCollection = "user01"; //WILL CONTAIN THE SELECTED USERNAME 
     DBCollection coll = db.getCollection(selectedCollection); 

     ArrayList<String> result = new ArrayList<String>(); 
     //DBObject obj = coll.findOne("LoginRequest.Time"); 
     BasicDBObject query = new BasicDBObject(); 
     BasicDBObject field = new BasicDBObject(); 
     field.put("LoginRequest.Time", 1); 
     DBCursor cursor = coll.find(query,field); 
     while (cursor.hasNext()) { 
      BasicDBObject obj = (BasicDBObject) cursor.next(); 
      result.add(obj.getString("LoginRequest.Time")); 
      System.out.println(obj.getString("LoginRequest.Time")); 
     } 

它工作正常,如果我用LoginRequest替換LoginRequest.Time無處不在。感謝幫助。

回答

0
(BasicDBObject(obj.get("LoginRequest"))).getString("Time")