我有两种型号的user-roles和candidate-details,我想在candidate-details中将user-roles集合id填充为candidateId
我的用户角色模型
const userRolesSchema=mongoose.Schema({
phoneNumber:{
type:Number,
unique:false,
validate(value){
if(value.toString().length !== 10){
throw new Error('Phone number should be of 10 digits');
}
},
},
isCandidate:{
type:Boolean
},
isCompany:{
type:Boolean
}
})我的候选细节模型
const candidateRegisterationSchema=new Schema({
firstName:{
type:String,
required:true
},
lastName:{
type:String,
required:true
},
userName:{
type:String,
required:true,
unique:true
},
phoneNumber:{
type:Number,
unique:true,
required:true,
validate(value){
if(value.toString().length !== 10){
throw new Error('Phone number should be of 10 digits');
}
}
},
whatsappNumber:{
type:Number,
unique:true,
required:true,
validate(value){
if(value.toString().length !== 10){
throw new Error('Phone number should be of 10 digits');
}
},
},
candidateId:{
type:mongoose.Schema.Types.ObjectId,
ref:"user-roles",
required:true
}
})我的候选人退职控制器
const candidateRegisteration = async (req, res) => {
const candidate = new CandidateRegisterationModel();
const user = await UserRolesModel.findOne({ _id: req.params.c_id }).populate({path:'candidateId',strictPopulate: false });
if (user !== null) {
try {
candidate.firstName = req.body.firstName;
candidate.lastName = req.body.lastName;
candidate.userName = req.body.userName;
// candidate.candidateId = user._id;
candidate.whatsappNumber = req.body.whatsappNumber;
candidate.phoneNumber = user.phoneNumber;
await candidate.save();
res.status(201).json({
message: "candidate saved successfully",
statusCode: res.statusCode,
});
} catch (error) {
console.log(error);
res.status(500).json({ error, statusCode: res.statusCode });
}
}
else{
res.status(404).json({
message:"candidate not found",
statusCode:res.statusCode
})
}
};我是个新手,我需要你的帮助来理解和修正这个填充方法,我试着发送错误请求,比如
name": "ValidatorError",
"message": "Path `candidateId` is required.",这意味着它没有在candidateId中填充id。
发布于 2022-11-08 08:49:40
const candidateRegisteration = (req, res) => {
try {
const user = await UserRolesModel.findOne({
_id: req.params.c_id
});
if (user) {
const {
firstName,
lastName,
userName,
whatsappNumber
} = req.body
const {
_id: candidateId,
phoneNumber
} = user;
const candidate = new CandidateRegisterationModel({
firstName,
lastName,
userName,
whatsappNumber,
candidateId,
phoneNumber
});
await candidate.save();
res.status(201).json({
message: "candidate saved successfully",
statusCode: res.statusCode,
});
} else {
res.status(404).json({
message: "candidate not found",
statusCode: res.statusCode
})
}
} catch (error) {
console.log(error);
res.status(500).json({
error,
statusCode: res.statusCode
});
};
}https://stackoverflow.com/questions/74357719
复制相似问题