我尝试只获取用户的帖子,我使用的代码是:
router.get("/:username", async (req, res) => {
try {
const user = await User.findOne({ username: req.params.username });
const posts = await Post.find({ userId: user._id });
res.status(200).json(posts);
} catch (err) {
res.status(500).json(err);
}
});
我正在使用Postman测试GET localhost:6000/posts/admin
,每次我尝试使用它时,它都会出现此错误
"name": "CastError",
"message": "Cast to ObjectId failed for value \"admin\" (type string) at path \"_id\" for model \"Post\""
这是我在Monogodb的帖子集合
这是Mongodb中的用户集合
我不知道我在这里错过了什么,我只是想链接职位/:用户名只显示此用户名的职位
1条答案
按热度按时间j9per5c41#
此查询查找user,但user._id作为对象出现,但在数据库中userId保存为字符串,因此您可能应该将userId保存为对象