从 mongodb 到 node.js 获取数据
get data from mongodb through node.js
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 的值匹配,它会得到那个对象,但它会抛出错误:
{“消息”:“对于模型“PostMessage”的路径“_id”中的值“s-CoAhDKd”,转换为 ObjectId 失败”}
基于此线程: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,它表示 ObjectIDs 是 24 个字符的哈希值。
所以“s-CoAhDKd”不是正确的格式 ;)
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 });
}
试试上面的方法
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 的值匹配,它会得到那个对象,但它会抛出错误:
{“消息”:“对于模型“PostMessage”的路径“_id”中的值“s-CoAhDKd”,转换为 ObjectId 失败”}
基于此线程: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,它表示 ObjectIDs 是 24 个字符的哈希值。 所以“s-CoAhDKd”不是正确的格式 ;)
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 });
}
试试上面的方法