MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

затваряне на mongodb връзка в node.js при вмъкване на много данни

Сигурен съм 100%, но доколкото виждам, вмъквате данни синхронно. Имам предвид, че след като получите ред, се опитвате да го вмъкнете и не чакате резултата. Опитайте да използвате друг подход:

  • чете всички редове и ги съхранява в масив
  • започнете да вмъквате данните ред по ред асинхронно

Нещо подобно:

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. Spring :Може ли един клас да бъде едновременно @Document и @Table

  2. Mongoose предава req обект към междинен софтуер

  3. Как да върна новата стойност след актуализация във вграден масив?

  4. Нормализация на MongoDB, външен ключ и присъединяване

  5. Mongo Map Reduce за първи път