Ich bin mir 100% sicher, aber soweit ich sehen kann, fügen Sie Daten synchron ein. Ich meine, sobald Sie eine Zeile erhalten, versuchen Sie, sie einzufügen, und warten nicht auf das Ergebnis. Versuchen Sie es mit einem anderen Ansatz:
- alle Zeilen lesen und in einem Array speichern
- Beginnen Sie mit dem asynchronen Einfügen der Daten Zeile für Zeile
Etwas in der Art:
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
})
});
}
});