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();