删除后如何在mongodb中创建新数据库?

时间:2013-08-30 18:48:28

标签: node.js mongodb

在我的最终测试结束时,我想删除“测试”数据库,然后创建一个新的测试数据库。删除整个数据库是simple

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

但是现在我如何创建测试数据库?我在docs中找不到createDatabaseuseDatabase命令。我是否必须断开连接并重新连接,或者是否有适当的命令?如果创建数据库的唯一方法是连接到服务器的副作用,那将是奇怪的。

更新

我发现some C# code似乎创建了一个数据库,看起来它连接,丢弃数据库,再次连接(不断开连接?)并创建新数据库。这就是我现在要做的。

    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);
    }

1 个答案:

答案 0 :(得分:2)

mongodb将在下次将文档保存到该数据库中的集合时自动创建(或重新创建)它。您不需要任何特殊代码,我认为您也不需要重新连接,只需在测试中保存文档就可以了。仅供参考这个相同的模式适用于mongodb集合 - 它们是在写入时隐式创建的。