2017-06-16 16 views
0

私はこれを私のデータベースに持っています。javaを使用してmongodb配列要素を取得します。

{ 
"_id" : ObjectId("59424f41baaacf1f40815ae8"), 
"first_name" : "Yazid", 
"last_name" : "Amir", 
"gender" : "Male", 
"hobby" : ["Memanah", "Business", "Fusal", "Makan"] 
} 

私はアレイの趣味から "ビジネス"を検索したいとしましょう。だから私のコードはこのようになります

MongoCollection collection = db.getCollection("customers"); 
BasicDBObject whereQuery = new BasicDBObject(); 
whereQuery.put("first_name", "Yazid"); 

MongoCursor<Document> cursor = collection.find(whereQuery).iterator(); 

try { 
while (cursor.hasNext()) { 
    Document str = cursor.next(); 



    out.println(str.get("hobby.0")); // display specific field 
} 
} finally { 
cursor.close(); 
} 

しかし、結果はnullです。

+0

が実際に '「趣味」であるプロパティを取得し'して、通常のJavaリストのような配列にアクセス格納するList<Document>を使用してください。 MongoDBのドット表記法は、Javaオブジェクトには適用されません。 –

答えて

1

あなたの配列

while (cursor.hasNext()) { 
    Document str = cursor.next(); 

    List<Document> list = (List<Document>)str.get("hobby"); 

    out.println(list.get(0)); // display specific field 
} 
+0

うわー。ありがとう。できます!! –

+0

うれしい私は助けることができる:) –

関連する問題