2017-03-09 3 views
0

Javaを使用してMongoDB内のすべてのIDを配列に追加したいと考えました。どのように私はIDまたは任意のデータ形式を取って、Javaから配列に入れますか?JavaでMongoDBの配列にすべてのIDを追加

PS:私はNoSQLのデータベース構造で初心者だと私はMongoDBの3.2

コードを使用していますが、これまでこのようなものです。

public void ArrayEx(){ 

    MongoClient mongoClient = new MongoClient("localhost",27017); 
    MongoDatabase database = mongoClient.getDatabase("dbTest"); 
    MongoCollection<Document> collection =database.getCollection("colTest"); 
    MongoCursor<Document> cursor = collection.find().iterator(); 
    while(cursor.hasNext()) { 

     //What should I add here? 

    } 
} 
+0

をあなたは '長い[]'を持つようにしたいです'_id'の? –

+0

私は配列の中にすべての_idを置いて、そのコンボボックスを作ることができます。 –

+0

'MongoCursor cursor = collection.find()。projection(新しいドキュメント(" _ id "、1))。iterator(); while(cursor.hasNext()){ ドキュメントの結果= cursor.next(); ロングID = result.getLong( "_ id"); // add to combobox } ' – Veeram

答えて

0

あなただけのIDが必要な場合は、次のようにあなたの方法を変更し

List Ids = collection.distinct("_id"); 
+0

私はコンボボックスを自動的に作成できるように、それらを1つずつ配列に入れたいと思っていました。 –

0

MongoDBの個別の機能を使用することができます。

public void ArrayEx() { 

    MongoClient mongoClient = new MongoClient("localhost", 27017); 
    MongoDatabase database = mongoClient.getDatabase("dbTest"); 
    MongoCollection<Document> collection = database.getCollection("colTest"); 
    MongoCursor<Document> cursor = collection.find().iterator(); 

    ArrayList<String> listOfIDS = new ArrayList<>(); 
    while (cursor.hasNext()) { 
     listOfIDS.add(cursor.next().getObjectId("_id").toString()); 
    } 

    String ids[] = new String[listOfIDS.size()]; 
    ids = listOfIDS.toArray(ids); 
} 
+0

ここでは、私は文字列を使用しています。あなたの例では、文字列をLongに変換できないと言います。その後、文字列でコードを変更すると、オブジェクトは文字列に変換できません。私はする必要がありますか? –

+0

「文字列をLongに変換できません」と表示されている行はありますか? –

+0

ローカルホスト上では、どの行に問題があるのか​​分かりませんが、ここでは "listOfIDS.add(cursor.next()。getLong(" _ id "));"ここでStringに変更するとObjectIdをStringにキャストできないという。 –

関連する問題