引用mongoose架构时返回空数组的问题

46qrfjad  于 2023-08-06  发布在  Go
关注(0)|答案(1)|浏览(96)

我试图解决这个问题,其中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数组。我将非常感谢任何帮助,谢谢。

xqk2d5yq

xqk2d5yq1#

req.query.id是一个字符串,可以使用

await Post.find({user : new mongoose.Types.ObjectId(req.user.id)}),

字符串
findById支持ObjectId作为String,其中Id应为主键。

相关问题