sql >> Database teknologi >  >> NoSQL >> MongoDB

lukning af mongodb-forbindelse i node.js, mens der indsættes en masse data

Jeg er 100% sikker, men så vidt jeg kan se, indsætter du data synkront. Jeg mener, når du først får en linje, prøver du at indsætte den og venter ikke på resultatet. Prøv at bruge en anden tilgang:

  • læs alle linjerne og gem dem i et array
  • begynd at indsætte data linje for linje asynkront

Sådan noget:

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. Hvad er fordelen ved Redis clustering på forskellige værter?

  2. Kunne ikke vise punkterne inden for et specifikt interval (cirkel) ved hjælp af .getBounds()-funktionen (Leaflet)

  3. mongodb flere dokumenter indsætte eller opdatere med en unik nøgle

  4. MongoDB-løsning til dokument over 16 MB størrelse?