MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

zamykanie połączenia mongodb w node.js podczas wstawiania dużej ilości danych

Jestem na 100% pewien, ale o ile widzę, wstawiasz dane synchronicznie. Mam na myśli to, że po pojawieniu się linii próbujesz ją wstawić i nie czekasz na wynik. Spróbuj użyć innego podejścia:

  • odczytaj wszystkie wiersze i zapisz je w tablicy
  • zacznij wstawiać linię danych po linii asynchronicznie

Coś takiego:

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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Agregacja MongoDB w celu dodania brakujących miesięcy między dwiema datami po zgrupowaniu według pola daty

  2. Jak dynamicznie budować zapytanie mongodb

  3. Jak wysłać wiele dokumentów za pomocą RMongo

  4. Mongoid:znajdź poprzez tablicę identyfikatorów

  5. Odfiltruj zduplikowane tablice i zwróć unikalną tablicę w agregacji mongodb