2017-04-11 70 views
-1

當前我正在設計一個測試環境,在所有測試都完成時(跨所有測試用例),我需要重置所有連接的mongodb數據庫在測試後將所有連接的數據庫放入貓鼬中

Code Here

現在,我嘗試以下,

Mongoose.js: remove collection or DB

drop database with mongoose

我仍然不能使它發揮作用。

那麼除了放棄之外,我會做些什麼?

+0

did you tried connections.db1.dropDatabase(); –

+0

是的,我也試過這一個,但仍然是第二個數據庫** db2 **完全丟棄。 –

+0

我想你的問題在於多重連接。當你連接到第一個db1時,db1是活動連接,當你連接到db2時,你的連接切換到db2而不是db1。所以它只是刪除了db2。 –

回答

0

增加了保證只有在成功連接時纔會丟失數據庫。

My Answer

0

作爲一個替代方法,貓鼬確實導出一個構造函數的默認實例的新實例。所以這樣的事情是可能的。

var Mongoose = require('mongoose').Mongoose; 

var instance1 = new Mongoose(); 
instance1.connect('foo');` 

var instance2 = new Mongoose(); 
instance2.connect('bar'); 

這與單獨的數據源時,以及當你想爲每個用戶或要求一個單獨的數據庫環境是非常有用的。你需要小心,因爲這樣做時可以創建很多連接。確保在不需要實例時調用disconnect(),並限制每個實例創建的池大小。