0

在我的端到端测试中,我想删除“测试”数据库,然后创建一个新的测试数据库。删除整个数据库很简单

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

但是现在我如何创建测试数据库?我在文档中找不到createDatabaseoruseDatabase命令。我必须断开并重新连接,还是有正确的命令?如果创建数据库的唯一方法是连接到服务器的副作用,那将是很奇怪的。

更新

我发现了一些似乎创建数据库的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 回答