我有一些巨大的csv文件,需要将它们存储到Mongo数据库中。因为这些文件太大了,所以我需要使用流。在数据写入数据库时,我会暂停流。
但是
var fs = require('fs');
var csv = require('csv');
var mongo = require('mongodb');
var db = mongo.MongoClient.connect...
var readStream = fs.createReadStream('hugefile.csv');
readStream.on('data', function(data) {
readStream.pause();
csv.parse(data.toString(), { delimiter: ','}, function(err, output) {
db.collection(coll).insert(data, function(err) {
readStream.resume();
});
});
});
readStream.on('end', function() {
logger.info('file stored');
});
但是
csv.parse
出现了错误,因为我需要逐行读取文件以将其处理为csv,并将其转换为mongodb的json格式。也许我不应该暂停它们,而是使用一个接口。我还没有找到任何解决方案。任何帮助都将不胜感激!