sql >> Databasteknik >  >> NoSQL >> MongoDB

stänger mongodb-anslutningen i node.js samtidigt som mycket data infogas

Jag är 100% säker men så vitt jag kan se infogar du data synkront. Jag menar när du får en rad försöker du infoga den och väntar inte på resultatet. Försök med ett annat tillvägagångssätt:

  • läs alla rader och lagra dem i en array
  • börja infoga data rad för rad asynkront

Något sådant:

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. Konverterar R-listan till JSON

  2. Analysera prestanda för en fråga - mongoDB

  3. Meteor-sidan uppdateras med knappklick

  4. Mongoose find(), hur får man tillgång till resultatdokumenten?