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

Jak naplnit mangusty velkým souborem dat

i je váš index místa, odkud stahujete vstupní data v catalogArray , ale také se jej pokoušíte použít ke sledování toho, kolik jich bylo uloženo, což není možné. Zkuste je sledovat samostatně takto:

var i = 0;
var saved = 0;
Catalog.remove({}, function(err){
    while(i < catalogArray.length){
        new Catalog(JSON.parse(catalogArray[i])).save(function(err, doc){
            saved++;
            if(err){
                console.log(err);
            } else {
                if(saved === catalogArray.length) {
                    return callback('database populated');
                }
            }
        });
        i++;
    }
});

AKTUALIZACE

Pokud chcete do procesu přidat přísnější řízení toku, můžete použít async forEachLimit modulu funkce k omezení počtu zbývajících save operace podle toho, co určíte. Chcete-li to například omezit na jedno zbývající save najednou:

Catalog.remove({}, function(err){
    async.forEachLimit(catalogArray, 1, function (catalog, cb) {
        new Catalog(JSON.parse(catalog)).save(function (err, doc) {
            if (err) {
                console.log(err);
            }
            cb(err);
        });
    }, function (err) {
        callback('database populated');
    });
}


  1. Instalace Redis na CentOS 7

  2. Nejlepší způsob, jak provádět fulltextové vyhledávání v MongoDB a Mongoose

  3. Jaká je maximální velikost sbírky v mongodb

  4. Jak spustit mongodb shell v kontejneru docker?