通过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 获取数据时,浏览器会一直加载
如何使用 mongoose 从 mongoDB 中获取一定数量的对象? (Node.js)