2013-08-30 40 views
0

在我的端到端測試中,我想刪除「測試」數據庫,然後創建一個新的測試數據庫。刪除整個數據庫是simple如何在刪除MongoDB後創建新的數據庫?

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

回答

2

mongodb會在下一次將文檔保存到該數據庫中的集合時自動創建(或重新創建)它。你不應該需要任何特殊的代碼,我認爲你也不需要重新連接,只需要在測試中保存一個文檔,你應該很好。僅供參考這種模式適用於mongodb集合 - 它們是在寫入時隱式創建的。

相關問題