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

Luwak menambahkan beberapa item ke database

Masalahnya di sini adalah di findOne panggilan balik - beerId Anda akan selalu disetel ke bir terakhir di beerObjects , karena loop selesai sebelum Anda melakukan panggilan balik pertama - selamat datang di javascript asinkron.

Salah satu solusi untuk ini adalah dengan membungkus findOne Anda kode dalam IFFE (Ekspresi Fungsi Segera Dipanggil). Kode ini akan selesai sebelum pindah ke bir berikutnya dari beerObject.

Berikut adalah beberapa info lebih lanjut tentang IFFE

Stack Overflow di IFFE

Saya mengambil pass cepat pada kode, saya yakin ini akan berhasil, tetapi Anda mungkin harus membuat beberapa penyesuaian dengan kode internal...

for(var i = 0; i < beerObjects.length; i++) {
    console.log(beerObjects[i].beerId);
    //var currentBeer = beerObjects[i]; dont need this now
    (function (currentBeer) {
        Beer.findOne({ beerId: currentBeer},
            function(err, beer) {
                if(!err && !beer) {
                    var newBeer  = new Beer();
                    newBeer.beerId = currentBeer.beerId;
                    newBeer.name = currentBeer.name;
                    newBeer.description = currentBeer.description;
                    newBeer.abv = currentBeer.abv;
                    newBeer.image = currentBeer.image;
                    newBeer.save(function(err) {
                       // log your error here...
                    });
                } else if(!err) {
                    console.log("Beer is in the system");
                } else {
                    console.log("ERROR: " + err);
                }
            }
        );   
    })(beerObjects[i].beerId);
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB+Java:Kredensial hilang dalam dokumen pengguna

  2. Tidak dapat terhubung ke MongoDB dengan otentikasi diaktifkan

  3. Permintaan MongoDB untuk menggunakan huruf besar pertama dalam database yang ada

  4. Data pembaruan MongoDB di bidang bersarang

  5. Linq ke Filter MongoDB