MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Cara mengisi luwak dengan kumpulan data yang besar

i adalah indeks Anda ke tempat Anda mengambil data input di catalogArray , tetapi Anda juga mencoba menggunakannya untuk melacak berapa banyak yang telah disimpan yang tidak mungkin. Coba lacak mereka secara terpisah seperti ini:

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

PERBARUI

Jika Anda ingin menambahkan kontrol aliran yang lebih ketat ke proses, Anda dapat menggunakan async forEachLimit modul berfungsi untuk membatasi jumlah save outstanding operasi untuk apa pun yang Anda tentukan. Misalnya, untuk membatasinya menjadi satu save outstanding sekaligus:

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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mencegah kondisi balapan terkait database di Node.js

  2. Server Mongo menerima kredensial dari shell, tetapi tidak dari antarmuka Java/Scala

  3. Apakah Meteor memiliki kueri yang berbeda untuk koleksi?

  4. Membangun mongo-cxx-driver menggunakan CMake ExternalProject_Add

  5. Bagaimana cara mengatur database MongoDB di Heroku dengan MongoLab?