通过node.js从mongodb获取数据

Posted

技术标签:

【中文标题】通过node.js从mongodb获取数据【英文标题】:get data from mongodb through node.js 【发布时间】: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 失败”

【问题讨论】:

【参考方案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”不是正确的格式;)

【讨论】:

以上是关于通过node.js从mongodb获取数据的主要内容,如果未能解决你的问题,请参考以下文章

Node.js REST API 从 MongoDB 获取数据

从Node JS中的MongoDB查询中获取数据

使用 node.js 从 Mongodb 获取数据时,浏览器会一直加载

如何使用 mongoose 从 mongoDB 中获取一定数量的对象? (Node.js)

如何使用node js,reactjs,express从实际网页中的mongodb中获取数据

MongoDb 获取数据时出现聚合错误