0

エンドツーエンドのテストで、「テスト」データベースを削除してから、新しいテスト データベースを作成したいと考えています。データベース全体を削除するのは簡単です:

mongoose.connection.db.command( {dropDatabase:1}, function(err, result) {
    console.log(err);
    console.log(result);
});

しかし、どうすればテストデータベースを作成できますか? docscreateDatabaseにまたはuseDatabaseコマンドが見つかりません。切断して再接続する必要がありますか、それとも適切なコマンドがありますか? データベースを作成する唯一の方法がサーバーへの接続の副次的効果であるとしたら、それは奇妙なことです。

アップデート

データベースを作成するように見えるC# コードを見つけました。接続し、データベースをドロップし、(切断せずに) 再度接続し、新しいデータベースを作成するようです。これが今のところ行うことです。

    public static MongoDatabase CreateDatabase()
    {
        return GetDatabase(true);
    }

    public static MongoDatabase OpenDatabase()
    {
        return GetDatabase(false);
    }

    private static MongoDatabase GetDatabase(bool clear)
    {
        var connectionString = ConfigurationManager.ConnectionStrings["MongoDB"].ConnectionString;
        var databaseName = GetDatabaseName(connectionString);
        var server = new MongoClient(connectionString).GetServer();
        if (clear)
            server.DropDatabase(databaseName);
        return server.GetDatabase(databaseName);
    }
4

1 に答える 1

2

mongodb は、次にドキュメントがそのデータベースのコレクションに保存されるときに、自動的に作成 (または再作成) します。特別なコードは必要ありませんし、再接続する必要もないと思います。テストでドキュメントを保存するだけで、準備完了です。参考までに、これと同じパターンが mongodb コレクションに適用されます。それらは書き込み時に暗黙的に作成されます。

于 2013-08-30T18:57:43.750 に答える