Node.js Mongodb流调用';结束';活动太早
我正在使用nodejs将mongodb转储到另一个mongodb 我每个副本集大约有1000万个文档。但流调用“数据”事件的次数只有100万次,甚至少于它调用“结束”事件的次数。因此,我无法获得与总文档数相等的文档(“数据”事件计数比stream.count低很多) 请注意,“结束”事件之后没有“数据”事件 但有时它会起作用。它使用相同的代码获取所有1000万份文档 有什么方法可以调试这个吗 代码如下:Node.js Mongodb流调用';结束';活动太早,node.js,mongodb,Node.js,Mongodb,我正在使用nodejs将mongodb转储到另一个mongodb 我每个副本集大约有1000万个文档。但流调用“数据”事件的次数只有100万次,甚至少于它调用“结束”事件的次数。因此,我无法获得与总文档数相等的文档(“数据”事件计数比stream.count低很多) 请注意,“结束”事件之后没有“数据”事件 但有时它会起作用。它使用相同的代码获取所有1000万份文档 有什么方法可以调试这个吗 代码如下: 在深入研究MongoDB模块后,我发现有一个未记录的“错误”事件 stream.on('
在深入研究MongoDB模块后,我发现有一个未记录的“错误”事件
stream.on('error', function(error) {
console.error(error);
db.close();
});
然后我再次运行它,等待错误事件发生,然后我发现网络连接有问题。添加timeout:false
以查找函数有助于解决此问题
var stream = col.find(mongoSync.query, mongoSync.projection,{timeout:false}).batchSize(mongoSync.batchSize).stream();
请至少发布您的代码或相关部分。@ShanShan抱歉,我刚刚添加了它。请检查一下。我不确定你是否可以在不耗尽光标的情况下调用流。