2010-11-30 10 views
1

私はMongo DBを初めて使用しています。私はそれをjavaで実装する必要があります。私はスライドを通過したが、何が起こっているのか混乱している。私はmongo DBを使用して小さなJavaプログラムを実行しましたが、それは動作していませんか? Mongo DB不明のエラー?

私のJavaコード:

public class MongoDbTesting { 

    public void connectingMongo() throws UnknownHostException, MongoException{ 
    Mongo m = new Mongo("localhost" , 27017); //mongo object 
    DB db = m.getDB("todo"); 
    System.out.println("Connected"); 
    //making a collection object which is table when compared to sql 
    DBCollection items = db.getCollection("items"); 
    System.out.println("items got"); 

    //to work with document we need basicDbObject  
    BasicDBObject query = new BasicDBObject(); 
    System.out.println("Created mongoObject"); 
    //insert in mongo 
    query.put("priority", "highest"); 
    items.insert(query); 
    System.out.println("Inserted");  
     //Cursor, which is like rs in sql 
    DBCursor cursor = items.find(); 
    System.out.println("items got"); 
    //print highest priority items 

    while(cursor.hasNext()){ 
     System.out.println(cursor.hasNext()); 
    } 
    } 
    } 

出力は次のとおりです。 それは

真 真 真 真 真 真 真 真 として連続して印刷きていますtrue 真 真 真 真 真 真 真 真 真 真 真 真 真

私は何が起こっているのかを把握するカント。私はコレクションの "items" にいくつかのデータを挿入したいのですが、もし私がMongoをJavaで使う方法を知りたいのなら。私はmysqlをよく知っていますが、mongoへの移行はクエリの両方に関連していません。 "query.put"は何をしていますか?何か提案してください?

答えて

2

whileループの中でcursor.next()を呼び出すのを忘れてしまったので、無限ループになります。

+0

申し訳ありません、あなたが正しいです。早速お返事をいただきありがとうございます。 –

+0

@ Leo-vin、回答を受け入れられた回答としてマークできますか?ありがとう:) – rawpower

+0

私は答えを受け入れるために3分待つ必要があると言いました。だからこそ。ごめんなさい。行く1分以上。お願いします。 –

1

あなたが使用する必要があります:

System.out.println(cursor.next()); 

ではなく

System.out.println(cursor.hasNext()); 

を...

+0

ありがとうございます。そのうまく動作します。 –

+0

+1と私は両方の権利をマークするオプションがある場合私は間違いなくそれを行うが、私の手が縛られます。そのために残念。 –