我在为不同的集合创建文档时遇到了问题。这里为每个模型(对应于一个集合)附加到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个集合。
可能是什么原因?
答案 0 :(得分:1)
MongoDB文档说明了drop()
方法:
此方法在受影响的数据库上获取写锁定 阻止其他操作直到完成。
我怀疑当你同时启动三个create()/ drop()动作时会发生这种情况。 您需要通过一些回调/承诺来控制您的应用程序流程,否则您无法保证一致的行为。