【问题标题】:get data from mongodb through node.js通过node.js从mongodb获取数据
【发布时间】:2021-06-02 23:34:06
【问题描述】:
const postSchema = mongoose.Schema({
  id: String,
  name: String,
  isbn: String,
  image: String,
})

var PostMessage = mongoose.model('PostMessage', postSchema);


const getBook = async (req, res) => { 
  const { id } = req.params;

  try {
      const post = await PostMessage.findById(id);
      
      res.status(200).json(post);
  } catch (error) {
      res.status(404).json({ message: error.message });
  }
}

我想通过 "id" 从我的 mongodb 获取数据。如果我的 id 与 mongodb 中的 id 值匹配,它会获取该对象,但它会抛出错误:

{“message”:“模型“PostMessage”的路径“_id”中的值“s-CoAhDKd”转换为 ObjectId 失败”}

【问题讨论】:

    标签: node.js reactjs mongodb mongoose mongoose-schema


    【解决方案1】:
    const { id } = req.params;
    
    try {
        const post = await PostMessage.findById({id: id});
        res.status(200).json(post);
    } catch (error) {
      res.status(404).json({ message: error.message });
    }
    

    试试上面的

    【讨论】:

      【解决方案2】:

      基于此线程:What's Mongoose error Cast to ObjectId failed for value XXX at path "_id"?

      您必须检查您的 ID 是否符合 Mongoose ObjectId 结构的要求:

      mongoose.Types.ObjectId.isValid('your id here');
      

      在文档中:https://mongoosejs.com/docs/schematypes.html#objectids,它表示 ObjectID 是 24 个字符的哈希值。 所以“s-CoAhDKd”不是正确的格式;)

      【讨论】:

        猜你喜欢
        • 2014-04-29
        • 2018-03-11
        • 1970-01-01
        • 2020-03-21
        • 2016-10-20
        • 2018-01-26
        • 2020-01-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多