Ik weet het 100% zeker, maar voor zover ik kan zien, voer je gegevens synchroon in. Ik bedoel, als je eenmaal een regel hebt gekregen, probeer je deze in te voegen en wacht je niet op het resultaat. Probeer een andere aanpak:
- lees alle regels en sla ze op in een array
- begin de gegevens regel voor regel asynchroon in te voegen
Zoiets:
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
})
});
}
});