Mongoose.findOne返回相同的文档

时间:2019-06-20 16:46:56

标签: node.js mongodb express mongoose

我正在尝试使用express作为后端按其id获取mongodb文档。每当我提出路由请求时,findOne&populate查询都会返回相同的文档。我想通过ID返回患者数据。任何人都可以帮助我我是JavaScript新手。

// @ route  GET api/profile/patient/:patientId
// @ desc   Get patient by patientId
// @ access Private

router.get('/:patient_id', auth, async (req, res) => {
    try {
      const patient_profile = await Patient.findOne({

        patient: req.params._id

      }).populate('patient');
      //console.log(patient);
      console.log(patient_profile);
      if (!patient_profile) return res.status(400).json({ msg: 'Patient not found' });

      res.json(patient_profile);    
    } catch (err) {
      console.error(err.message);
      if (err.kind == 'ObjectId') {
        return res.status(400).json({ msg: 'Profile not found' });
      }
      res.status(500).send('Server Error');
    }
  });

module.exports=router;

1 个答案:

答案 0 :(得分:-1)

要访问请求参数上的ID,请使用下面的代码...

req.params.patient_id

您的错误是

req.params._id