2017-04-10 80 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