Mongoose - 多个集合并行文档创建

时间:2017-04-10 11:13:29

标签: node.js mongodb mongoose

我在为不同的集合创建文档时遇到了问题。这里为每个模型(对应于一个集合)附加到create(...)的最后一个回调是删除相应的集合,但它不能一致地工作。

e.g。我们有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 个答案:

答案 0 :(得分:1)

MongoDB文档说明了drop()方法:

  

此方法在受影响的数据库上获取写锁定   阻止其他操作直到完成。

我怀疑当你同时启动三个create()/ drop()动作时会发生这种情况。 您需要通过一些回调/承诺来控制您的应用程序流程,否则您无法保证一致的行为。