0

私はMongoDBでプロジェクトを開始しています。私は私のDBを持っています:

mongo=null;
    try {
        mongo = new Mongo();
    } catch (UnknownHostException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (MongoException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    db = mongo.getDB( "mydb" );
    System.out.print(db.getName());//just a test

そして、特定のコレクションのすべての要素を表示したいと思います(scrollPaneに表示されますが、それは質問にとって重要ではありません)。データベース「mydb」が空であるため、コレクションは最初は存在しません。これは私のコードです:

        DBCursor cur = db.getCollection("newcollection").find();//collection should be created at this point, if it doesnt exist.


        while(cur.hasNext()) { //<----exception caused here
            //do something with cursor...
        }

最初はコレクションが空ですが、さらに使用するとアプリケーション要素が追加されるため、アプリケーションが開始されたときからコレクションを検索して、scrollPaneに入力する必要があります。

これはスタックトレースです:

        java.io.IOException: couldn't connect to [/127.0.0.1:27017] bc:java.net.ConnectException:     Connection refused: connect
at com.mongodb.DBPort._open(DBPort.java:222)
    at com.mongodb.DBPort.go(DBPort.java:111)
at com.mongodb.DBPort.call(DBPort.java:78)
at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:217)
at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:313)
at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:298)
at com.mongodb.DBCursor._check(DBCursor.java:369)
at com.mongodb.DBCursor._hasNext(DBCursor.java:492)
at com.mongodb.DBCursor.hasNext(DBCursor.java:517)
at MainFrame$MyPanel.<init>(MainFrame.java:120)//<----cur.hasNext()

私が間違っていることについて何か考えはありますか?

4

2 に答える 2

2

ここでの私の気持ちは、DB がまったく実行されていないということです。「mongo」を使用してコマンド ラインから DB に接続し、DB が稼働中であることを確認していただけますか。

于 2012-06-21T16:54:18.527 に答える
0

コレクションが存在するかどうかを印刷前に確認できます

db.collectionExists("coll_name")

作成できない場合、またはいくつかのインデックスを確保できない場合-自動的に作成されます。通常、春の起動時にそのような操作を行っています( @PostConstruct など)

于 2012-06-21T16:49:24.760 に答える