我還在學習mongodb和node.js.當mongodb插入時,節點應用程序不工作
我試圖插入大量的數據說100k行與80-100列。我爲此創建了一個使用express.js的應用程序。我編碼的方式是一旦上載按鈕被點擊後頁面重定向到另一個頁面,在後臺應用程序將數據插入到數據庫中。
問題是,一旦插入開始應用程序停止響應。即使插入完成後,應用程序的運行速度也會變慢2-3分鐘左右。
我上
- 嘗試這種代碼的Fedora 14
- 英特爾P4 2.80GHz的
- 1.5GiB
- Fedora 14的
- I3 3.20GHz
- 3GiB
如何避免這個問題?它會在更好的系統上運行得更好嗎?
- jsonResult是讀取一個文件(CSV)和它 轉換成JSON
報頭中的結果是:用於存儲數據
MongoClient.connect(MONGODB_URI, function (err, database) { var collection = database.collection(collectionName); for (index = 0; index < jsonResult.length; ++index) { var obj = jsonResult[index]; for (var prop in obj) { if (headers[prop] == 'Date') { obj[prop] = new Date(obj[prop].replace(/(\d{2})-(\d{2})-(\d{4})/, "$2/$1/$3")); } else if (headers[prop] == 'Integer') { obj[prop] = parseInt(obj[prop]); } else if (headers[prop] == 'Float') { obj[prop] = parseFloat(obj[prop]); } } collection.insert(obj, function (err, result) { if (err) { console.log(JSON.stringify(err)); } }); } });
注
代碼有關鍵數據類型映射的對象
VAR頭= { '碘酸': '日期', 'SNO': '整數', '薪水': '浮動' }
代碼以讀取並轉換CSV到JSON
var cv_json = require('convert-json'); // required module convert-json (convert-csv,xls,xlsx into json)
cv_json({
input: target_path,
output: null
}, function (err, result) {
if (err) {
console.error(err);
} else {
persists(req, res, result, collectionName, headers); //Function where insert takes place.
}
})
凡'jsonResult'哪裏來的?這是讀取文件的結果。 –
@NeilLunn是通過使用模塊'convert-json'讀取一個csv文件。 – Okky
是的。你可以在你閱讀csv文件的地方加入你的代碼並進行轉換。所以人們可以看到你在那裏努力。有一個更好的方法來做到這一點。 –