You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mongoose查询时Cast to ObjectId失败问题求助

Mongoose查询时Cast to ObjectId失败问题求助

大家好,我刚接触MongoDB,现在碰到一个问题想请教各位大佬!

我在访问接口 localhost:3000/api/v1/tours/1 的时候,出现了如下错误:

{
  "status": "failure",
  "message": "Cast to ObjectId failed for value \"1\" (type string) at path \"_id\" for model \"Tour\""
}

对应的接口处理函数是这样的:

exports.getTour = async (req, res) => {
  try {
    const tour = await Tour.findById(req.params.id);
    res.status(200).json({
      status: 'success',
      data: {
        tour
      }
    });
  } catch (err) {
    res.status(404).json({
      status: 'failure',
      message: err.message
    });
  }
};

这个函数本来应该返回指定ID的旅游数据,下面是我的Tour模型Schema:

const mongoose = require('mongoose');

const tourSchema = new mongoose.Schema({
  name: {
    type: String,
    required: [true, 'A tour must have a name'],
    unique: true
  },
  rating: {
    type: Number,
    default: 4.5
  },
  price: {
    type: Number,
    required: [true, 'A tour must have a price']
  }
});

const Tour = mongoose.model('Tour', tourSchema);

我的Atlas数据库里已经存在对应的Tour数据,但就是查不出来,有没有大佬能帮我看看问题出在哪呀?

备注:内容来源于stack exchange,提问作者Arvinder Katoch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 11:27:56