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

Bagaimana saya bisa menjalankan pernyataan SETELAH loop selesai di javascript?

Lihat async.whilst . Anda ingin kontrol aliran for loop, yang menyediakan callback untuk mengontrol setiap iterasi loop.

var temphtml = "",
    j = 0;

async.whilst(
  function() { return j < 3 },
  function(callback) {
    db.austinsroom.find({"y": j }, {}).sort({"x": 1}, function(err, records) 
      temphtml += records.map(function(el) {
          return el.display;
      }).join("") + '<br>';
      j++;
      callback(err);
    });
  },
  function(err) {
     if (err) throw err;
     console.log(temphtml);
  }
)

Entah itu atau gunakan Promise.all() pada janji yang dikumpulkan untuk mengembalikan "satu hasil besar". Tetapi Anda juga perlu beralih ke promised-mongo dari mongojs , sebagai padanan terdekat, karena ada lebih banyak driver mongodb yang benar-benar mendukung janji. Yang itu hanya garpu langsung dari mongojs :

var temphtml = "",
    j = 0,
    promises = [];

for ( var j=0; j < 3; j++ ) {
   promises.push(db.austinsroom.find({"y": j }, {}).sort({"x": 1}).toArray());
   promises.push('<br>');   // this will just join in the output
)

Promise.all(promises).then(function(records) {
    temphtml += records.map(function(el) {
        return el.display;
    }).join("");
})

Tidak persis sama, karena itu adalah satu keluaran daftar dan bukan tiga, tetapi intinya adalah bahwa Promise objek menunda hingga benar-benar dipanggil untuk menyelesaikan, sehingga Anda dapat memasukkan parameter dalam loop, tetapi jalankan nanti.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB Atlas Error saat melakukan transaksi pada beberapa koleksi (kode 8000)

  2. Tidak dapat menggunakan BsonIgnoreIfDefault untuk properti bertipe long

  3. Keamanan Pre-Emptive dengan Audit Logging untuk MongoDB

  4. Kesalahan penulisan massal Mongodb

  5. dapatkan dokumen dengan $box dengan mongodb dan tambahkan bidang jarak untuk setiap catatan dengan titik koordinat tertentu