mongoDBに CSVアップロード機能を追加
index:
概要:
mongodbに、node.js でCSVファイルから
アップロード機能を追加する内容となります
・前回の、express 版のchart.js グラフ機能
に追加しています。
・コマンドラインから、実行する形です。
概要
mongo DB 2.4.14
node.js 10.16.0
mongo shell (mongo)
参考のコード
CSV ファイルの読み書き
・読みこみ
https://github.com/kuc-arc-f/app4_csv/blob/master/csv_import.js
readline 使用しました。
日付書式は、 javascript date型に変換しています。
var rs = fs.createReadStream( input_file ); var readline = require('readline'); var rl = readline.createInterface(rs, {}); var items = [] var i = 0; rl.on('line', function(line) { if(i > 0){ if(line.length > 0){ col = line.split(",") //console.log( col.length ); if(col.length >= 3){ items.push( col ) } } } i += 1; }) .on('close', function() { // console.log( items ); proc_arr_check(items) });
・CSV出力
https://github.com/kuc-arc-f/app4_csv/blob/master/csv_output.js
writeFileSync を使用
var db = monk(db_setting); var collection = db.get('mdats'); var fnm = "dat/outout.csv"; // var text = "date,H,L,\n"; collection.find({}, {sort: { mdate: 1}} ,function(e,docs){ docs.forEach( function (item) { //console.log( item ); var date = utl.convert_date2str(item.mdate) var hnum = item.hnum var lnum = item.lnum text += date +"," + hnum +"," + lnum + "\n" }); db.close() try { fs.writeFileSync(fnm , text); console.log('write end'); }catch(e){ console.log(e); } });
前回の、測定値グラフに反映
一括アップロードで、楽になりました