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

Vòng lặp với các lệnh gọi lại không đồng bộ trong mongoose / mongodb / node

Tôi nghĩ bạn muốn sử dụng một cái gì đó như async để điều phối các yêu cầu đó; map () có vẻ là một lựa chọn tốt:

Author.find({}, function (err, authors) {
  async.map(authors, function(author, done) {
    Book.count({author: author._id}, function(err, count) {
      if (err)
        done(err);
      else
      {
        done(null, {
          id    : author._id,
          name  : author.name,
          count : count
        });
      }           
    });
  }, function(err, author_array) {
    if (err)
    {
      // handle error
    }
    else
    { 
      /*
      res.writeHead(200, { 'Content-Type': 'application/json' });
      res.write(JSON.stringify({ authors: author_array }));
      res.end();
      */
      // Shorter:
      res.json(author_array);
    }
  });
});



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm thế nào để truy cập được lưu trữ lồng nhau với Pick <> typecript

  2. Cách gọi db.Collection.stats () từ trình điều khiển java Mongo

  3. Toán tử gần đối với lỗi trả về điểm geojson khi maxdistance được sử dụng trong truy vấn

  4. Cách xóa bảng điều khiển trong MongoDB

  5. Cách truy cập kho lưu trữ Nuget từ .NET Core bằng Visual Studio Code