我试图解决这个问题,其中const userPosts = await Post.find({user:req.user.id})在下面的代码中只返回一个空数组。
getPost : async (req, res) => {
try {
const userPosts = await Post.find({user : req.user.id})
res.render('profile.ejs',{posts : userPosts, user : req.user})
// console.log(req.user.id)
console.log(userPosts)
}catch(err){
console.error(err)
}
},
字符串
我正在使用一个post模式,它引用了我的其他模式User,如so ie
const PostSchema = new mongoose.Schema({ title:{ type:String,required:true,},标题:{ type:String,required:true,},user:{ type:mongoose.Schema.Types.ObjectId,ref:'用户',},})
const UserSchema = new mongoose.Schema({ username:{ type:String,unique:true,},电子邮件:{ type:String,unique:true,},密码:{ type:String,} })
最终目标是查询登录用户创建的所有帖子的Post集合,当登录www.example.com时req.user.id,我获得了User数据库中存在的正确ID,但似乎与引用断开连接。我将非常感谢任何帮助,谢谢。
最终目标是查询登录用户创建的所有帖子的Post集合,当登录www.example.com时req.user.id,我得到了User数据库中存在的正确ID,但似乎与引用断开,当我知道有与用户ID匹配的文档创建时,只返回一个emoty数组。我将非常感谢任何帮助,谢谢。
1条答案
按热度按时间xqk2d5yq1#
req.query.id是一个字符串,可以使用
字符串
findById支持ObjectId作为String,其中Id应为主键。