sql >> Database >  >> NoSQL >> MongoDB

Mongodb-verbinding in node.js sluiten tijdens het invoegen van veel gegevens

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
            })
        });
    }
});



  1. django:redis:CommandError:U hebt ASGI_APPLICATION niet ingesteld, wat nodig is om de server te laten draaien

  2. Gegevens toevoegen aan array in Mongoose Schema

  3. Hoe verwijder je in mongoDb een array-element door zijn index?

  4. Geef de resultaten van het GET-verzoek weer in de browser met NodeJS