मैं 100% निश्चित हूं लेकिन जहां तक मैं देख सकता हूं कि आप डेटा सिंक्रोनस डाल रहे हैं। मेरा मतलब है कि एक बार जब आप एक लाइन प्राप्त कर लेते हैं तो आप उसे सम्मिलित करने का प्रयास करते हैं और परिणाम की प्रतीक्षा नहीं करते हैं। दूसरे तरीके का इस्तेमाल करके देखें:
- सभी पंक्तियों को पढ़ें और उन्हें एक सरणी में संग्रहित करें
- एसिंक्रोनस रूप से डेटा लाइन को लाइन दर लाइन सम्मिलित करना प्रारंभ करें
कुछ ऐसा:
var lines = [];
var readAllLines = function(callback) {
// store every line inside lines array
// and call the callback at the end
callback();
}
var storeInDb = function(callback) {
if(lines.length === 0) {
callback();
return;
}
var line = lines.shift();
collection.insert(line, function (err, docs) {
storeInDb(callback);
});
}
mongoClient.open(function (err, mongoClient) {
console.log(err);
if (mongoClient) {
readAllLines(function() {
storeInDb(function() {
// lines are inserted
// close the db connection
})
});
}
});