Mongodbstream调用“结束”事件太早

我正在使用nodejs上的stream将mongodb转储到另一个mongodb。

我有每个副本集约1000万文档。 但stream调用“数据”事件只有100万次或更less,然后它调用“结束”事件。 所以我不能得到文件等于总文档('数据'事件计数低于stream.count很多)。

请注意,“结束”事件后没有“数据”事件。

但有时它可以工作。 它使用相同的代码获取所有1000万个文档。

有没有什么办法可以debugging呢?

代码在这里:

main.js mongoSync.js

深入挖掘MongoDB模块后,发现有“错误”事件没有logging。

  stream.on('error', function(error) { console.error(error); db.close(); }); 

然后我再次运行它,等到错误事件发生,然后我发现有一个networking连接的问题。 添加timeout:false寻找function帮助我在这种情况下。

 var stream = col.find(mongoSync.query, mongoSync.projection,{timeout:false}).batchSize(mongoSync.batchSize).stream();