2016-12-21 4 views
0

から値を取得し、今私はこのようなドキュメントのコレクションがあります。私はHashMapの(文字列、整数)でそれを置くために、「メンバー」からのメンバーのリストを取得する必要がありリストのMongoDBのJava

{ 
    "_id": ObjectId("585a8ccc85a4ab1b160b39dc"), 
    "name": "GuildName", 
    "slots": 100, 
    "members": [{ 
     "membername": "playername1", 
     "rank": 3 
    }, { 
     "membername": "playername1", 
     "rank": 5 
    }], 
    "purchases": [], 
} 

を。 ( "membername"のキー値として、 "rank"の整数値として)。これを行うための多くの方法があります

HashMap<String, Integer> memberMap = new HashMap<>(); 
List<Document> members = (List<Document>)doc.get("members"); 
for (Document member : members) { 
    memberMap.put(
      (String)member.get("membername"), 
      (Integer)member.get("rank")); 
} 
+2

これまでに試してみて、誰かがあなたを助けてくれるコードを追加してください。 – Veeram

答えて

0

と仮定docは、あなたのドキュメントを含むDocumentオブジェクトです。あなたのアプローチは何かに基づいています。

あなたが

BasicBSONObjectを使用している場合は、ドキュメントオブジェクトを使用している場合は、明示的に変換したい理由を、私はわからない LinkedHashMap<String,Object>

を返すBasicBSONObjecttoMap()関数を呼び出すことができますorg.bson.Documentがデフォルトでimplements Map<String,Object>であるため、別のハッシュマップに追加することができます。ハッシュマップで直接実行するドキュメントオブジェクトに対してすべての操作を実行できます。

まだ別のハッシュマップにコピーしたい場合は、Yoshiyaのコードを使用できます。

0