2017-04-10 54 views
0

我在爲不同集合創建文檔時遇到問題。在這裏,爲每個模型創建(...)的最後一個回調函數(對應於一個集合)是刪除相應的集合,但它不一致。貓鼬 - 多個集合並行文檔創建

例如我們有3個型號A,B和C.

db.once('open',function(){ 

A.create({ 

... 

},function(err,doc){ 

db.collection('a').drop(); 

}); 

B.create({ 

... 

},function(err,doc){ 

db.collection('b').drop(); 

}); 

C.create({ 

... 

},function(err,doc){ 

db.collection('c').drop(); 

}); 

} 

所有3個系列不會每次都被丟棄。

可能是什麼原因?

回答

1

MongoDB的文件說,大約drop()方法:

這種方法受影響的數據庫上獲得一個寫鎖,將 塊等操作,直到完成。

當您同時啓動三個create()/ drop()動作時,我懷疑發生了這種情況。 你需要用一些回調/承諾來控制你的應用程序流程,否則你不能保證一致的行爲。

+0

我也認爲這是問題,謝謝。 – HBalyan