我有两个模型的职位和用户,我想填充用户领域的职位,但由于某些原因,它不工作
后图式
import mongoose, { Schema, mongo } from "mongoose";
const postSchema = new Schema({
description : {
type : String,
required : true,
maxLength : [250 , "You can type upto only 250 characters"]
},
img : {type : String},
date : {
type : Date,
default : new Date(Date.now()),
required : true
},
user : {
type : mongoose.Schema.Types.ObjectId,
ref : 'User',
required : true,
},
likeCount : {
type : Number,
required : true,
default : 0
},
comments : {type : [{
text : String,
postedBy :{
type : mongoose.Schema.Types.ObjectId,
ref : "User"
}
}],
default : []
}
})
export const Post = mongoose.model("post",postSchema)
字符串
用户模式
import mongoose, { Mongoose } from "mongoose";
import { Schema } from "mongoose";
const userSchema = new Schema({
name : {
type : String,
required : true,
unique : true
},
password : {
type : String,
required : true,
},
email : {
type : String,
required : true,
unique : true
},
followingList : [{type : mongoose.Schema.Types.ObjectId , ref : "User" , unique : true}],
followerList : [{type : mongoose.Schema.Types.ObjectId , ref : "User", unique : true}],
followRequests : {type : [{
userId : {
type : mongoose.Schema.Types.ObjectId,
ref : "Users",
required : true
},
isAccepted : {type : Boolean , default : false}
}],
default : []
},
})
export const User = mongoose.model('User',userSchema)
型
取帖码
export const getAllUserPosts = async(req,res) => {
const {id} = req.params
const userPosts = await Post.find({user : id}).populate("user","name,_id")
res.status(200).json(
{
userPosts
}
)
}
型
我试过了网上所有的东西,但没有什么实际上帮助我它没有抛出任何错误,它实际上执行,它应该在帖子中显示用户的名称和ID,但它只显示ID,我无法找出实际问题发生的地方,即使阅读文档,我也没有在我的代码中看到任何问题
1条答案
按热度按时间ymzxtsji1#
您的填充格式不正确。
.populate("user", "name,_id")
无效。看起来你想做name._id?您只需要填充具有mongoose.Schema.Types.ObjectId类型的字段。编辑:看起来你用逗号代替了空格。这可能会解决它。见下文:
控制器:
字符串
产品型号:
型