sql >> Databáze >  >> NoSQL >> MongoDB

uzavření připojení mongodb v node.js při vkládání velkého množství dat

Jsem si 100% jistý, ale pokud vidím, vkládáte data synchronně. Myslím tím, že jakmile získáte řádek, pokusíte se jej vložit a nečekejte na výsledek. Zkuste použít jiný přístup:

  • přečtěte si všechny řádky a uložte je do pole
  • začněte asynchronně vkládat data řádek po řádku

Něco takového:

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. Získávání hodnot pomocí potrubí jedis

  2. Jak funguje parametr arrayFilters v MongoDB

  3. Výmluvný Outside of Laravel s několika DB připojeními jenssegers/laravel-mongodb

  4. Má mongoDB problémy s opětovným připojením nebo to dělám špatně?