skip to Main Content

user.ts

import mongoose from "mongoose";

const UserSchema=new mongoose.Schema({
    _id:mongoose.Types.ObjectId,
    name:{
        type:String,
        require:true
    },
    email:{
        type:String,
        require:true
    },
    password:{
        type:String,
        require:true,
    },
    liked:[{
        type: mongoose.Types.ObjectId,
        ref:'blogs',
        require:true
    }],
    myBlog:[{
        type: mongoose.Types.ObjectId,
        ref:'blogs',
        require:true
    }]
})

module.exports=mongoose.models.users||mongoose.model('users',UserSchema)

blogs.ts

import mongoose from "mongoose";

const BlogSchema=new mongoose.Schema({
    _id:mongoose.Types.ObjectId,
    users:{
        type: mongoose.Types.ObjectId,
        ref:'users',
        required:true
    },
    title:{
        type:String,
        require:true
    },
    discription:{
        type:String,
        require:true
    },
    Date:{
        type:String,
        require:true,
    },
    Comments:{
        type:Array
    },
    Likes:{
        type:Number
    },
})

module.exports=mongoose.models.blogs||mongoose.model('blogs',BlogSchema)

DetailUser.ts

import connectMongo from '@/Backend/Utils/connect'
import type { NextApiRequest, NextApiResponse } from 'next'
const user=require('../../../Backend/Models/user')
const blog=require('../../../Backend/Models/blogs')
type Data = {
  name: string
}
export default async function handler(
    req: NextApiRequest,
    res: NextApiResponse<Data>
  ) {
    if(req.method=="GET"){
        await connectMongo()
        const UserId="64b7e7a10d418980ac5d6a2f"
        try{
            const doc=await user.findOne({_id:UserId}).populate("blogs").exec()
            const response:any={
                message:"success",
                Blogs:doc
              }
              res.json(response)
        }catch(e){
            console.log(e)
            const response:any={
                message:"failed",
                Blogs:e
              }
              res.json(response)
        }
    }
  }

I want to populate blogs of user but it is not working and giving me response as:

{
    "message": "failed",
    "Blogs": {
        "path": "blogs"
    }
}

Console Output Of error

enter image description here

I was trying to populate the blogs of each user but it is not working. I tried to populate the blogs and it didn’t work. I cross checked the name of my model that was also fine please help.

2

Answers


  1. Chosen as BEST ANSWER

    I am really sorry

    I should populate myBlogs,


  2. The populate path is myBlog, not blogs or myBlogs.

    const doc = await user.findOne({_id:UserId}).populate("myBlog").exec()
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search