1

私はMongoDBを初めて使用し、Javaで実装する必要があります。私は5月のスライドを通過しましたが、何が起こっているのか混乱しています。mongo DBを使用して小さなJavaプログラムを実行しましたが、機能しませんか?

私の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 true true true true true true true true true true true true true true true true true true true true true true

何が起こっているのか理解できません。JavaでMongoを使用する方法を知りたい場合も、コレクション「items」にデータを挿入したいと思います。私はmysqlをよく知っていますが、mongoに移行すると、クエリで両方を関連付けることはできません。「query.put」は何をしているのですか?何か提案はありますか?

4

2 に答える 2

2

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

于 2010-11-30T11:31:59.537 に答える
1

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

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

それよりも

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

..。

于 2010-11-30T11:35:04.837 に答える