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

chiusura della connessione mongodb in node.js durante l'inserimento di molti dati

Sono sicuro al 100% ma per quanto posso vedere stai inserendo i dati in modo sincrono. Voglio dire, una volta che ottieni una riga, provi a inserirla e non aspetti il ​​risultato. Prova a utilizzare un altro approccio:

  • leggere tutte le righe e memorizzarle in un array
  • inizia a inserire i dati riga per riga in modo asincrono

Qualcosa del genere:

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