MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Làm cách nào để thực hiện một câu lệnh SAU KHI kết thúc một vòng lặp trong javascript?

Xem async.whilst . Bạn muốn kiểm soát luồng của for vòng lặp, mà điều này cung cấp một lệnh gọi lại để kiểm soát mỗi lần lặp lại vòng lặp.

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

Hoặc sử dụng Promise.all() trên những lời hứa đã thu thập sẽ trả về "một kết quả lớn". Nhưng bạn cũng cần chuyển sang promised-mongo từ mongojs , như là tương đương gần nhất, vì có nhiều trình điều khiển mongodb hơn thực sự hỗ trợ các hứa hẹn. Cái đó chỉ là nhánh rẽ trực tiếp từ 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("");
})

Không hoàn toàn giống nhau, vì nó là một đầu ra danh sách chứ không phải ba, nhưng điểm mấu chốt là Promise các đối tượng trì hoãn cho đến khi thực sự được gọi để giải quyết, vì vậy bạn có thể cung cấp các tham số trong vòng lặp, nhưng thực thi sau.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm cách nào để thay đổi trường _id trong MongoDB Collection thành User_id?

  2. Kết hợp Spring-Data cho MongoDB và ElasticSearch

  3. Tại sao sử dụng model.export trong các tệp mô hình riêng biệt?

  4. Thứ tự các trường từ truy vấn tìm với phép chiếu

  5. Cách quản lý người dùng và xác thực trong MongoDB