首页 > 解决方案 > Mongoose countDocuments() 返回查询

问题描述

我正在尝试计算特定用户从 API 调用中获得的贷款数量。Loans 模式有一个用户字段,其中包含相关用户的 id。计算贷款:

router.get('/loans/count:id', async (req, res) => {
  try {   
      const count = Loans.countDocuments({ user: req.params.id });
      console.log(count);
      res.json({ count: count });
    
  } catch (err) {
    console.error(err.message);
    res.status(500).send('Server Error');
  }
});

我只需要结果是一个带有文档数量的数字。我怎样才能做到这一点?

这是错误:

Error: Request failed with status code 500 at createError (createError.js:16) at settle (settle.js:17) at XMLHttpRequest.handleLoad (xhr.js:61)

标签: mongoose

解决方案


您必须像这样返回响应对象:

router.get('/loans/count:id', async (req, res) => {
  try {   
      const count = Loans.countDocuments({ user: req.params.id });
      console.log(count);
      res.status(200).send({count: count});
    
  } catch (err) {
    console.error(err.message);
    res.status(500).send('Server Error');
  }
});

推荐阅读