【发布时间】:2015-09-10 11:08:55
【问题描述】:
我有一些巨大的 csv 文件,我需要将它们存储在 mongo 数据库中。因为这些文件太大,我需要使用stream。我在数据写入数据库时暂停了流。
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 处理,并转换为 json 用于 mongodb。也许我不应该暂停它们,而是使用界面。我还没有找到任何解决方案。
任何帮助将不胜感激!
【问题讨论】: