実現したいこと
約5000行に及ぶTSVファイル内のデータを、もとデータの順番通りにDBに格納したい。
ファイル内のデータは上から日付順で並んでおり、1行=1データとしてDBに格納します。
DBへの格納方法
もとファイルをStreamで読み込み、1行読み込んだタイミングでDB更新処理をしています。
発生している問題
DBを確認すると、行順がところどころずれた状態で格納されていました。
おそらく原因は、streamのlineイベントにおいて、テーブル更新処理が終了する前にループしているから、と推測しています。
質問
大量のデータを、順番に狂いなくDBに格納する方法をおしえていただけないでしょうか?
よろしくお願いいたします。
DBへデータを格納するコード
Node
1const fs = require('fs'); 2const readline = require('readline'); 3 4// モデルの読み込み 5const Day_info_total = require('../models/day_info_total'); 6Day_info_total.sync(); 7 8// もとファイルのパス 9const path = '../downloads/all/total/all.tsv'; 10 11var rs = fs.createReadStream(path, 'utf-8'); 12var rl =readline.createInterface({input: rs}); 13rl.on('line',(data)=>{ 14 var data = data.split('\t'); 15 // モデルの更新 16 Day_info_total.create({ 17 date: data[0], 18 time: data[1], 19 unixTime: data[2], 20 totalVideos: data[3], 21 totalViews: data[4], 22 totalComments: data[5], 23 }); 24});
回答1件
あなたの回答
tips
プレビュー