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

Không thể giải quyết từ chối lời hứa và gửi mảng dưới dạng phản hồi

result.forEach trả về mảng các lời hứa. Bạn cần quảng cáo tất cả cùng một lúc bằng cách sử dụng Promise.all([])

exports.get_users = (req, res) => {
  SubscriptionPlan.find().then(async (result) => {
    if (!result) {
      return res.status(400).json({ message: "unable to process" });
    }
    let modifiedData = [];
    await Promise.all(
      result.map(async(data) => {
        if (data.processStatus === "active") {
          const response = await Users.findById(data.userId);
          modifiedData.push(response);
        }
      })
    );
    return res.json(modifiedData);
  }).catch((err) => console.log(err));
};

Hoặc có thể tìm thấy ngay lập tức

exports.get_users = async (req, res) => {
  try {
    const result = await SubscriptionPlan.find({ processStatus: "active" });
    if (!result) {
      return res.status(400).json({ message: "unable to process" });
    }
    const ids = result.map(({ userId }) => userId);
    const response = await Users.find({ userId: { $in: ids } });
    return res.json(response);
  } catch (err) {
    console.log(err)
    return res.status(400).json({ message: "unable to process" });
  }
};



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tránh trường hợp không có kết quả khi sử dụng $ dateFromString trên một trường

  2. Cách truy vấn bộ sưu tập tài liệu con bằng MongoDB và trình điều khiển C #

  3. Loại bỏ các tài liệu trùng lặp dựa trên trường

  4. Apache Drill - Thời gian bắt đầu đầu tiên cao

  5. Liệt kê và phân phát các tệp từ GridFS với Flask