首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试填充数据,但不填充

尝试填充数据,但不填充
EN

Stack Overflow用户
提问于 2022-11-08 08:29:15
回答 1查看 14关注 0票数 0

我有两种型号的user-rolescandidate-details,我想在candidate-details中将user-roles集合id填充为candidateId

我的用户角色模型

代码语言:javascript
复制
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
    }
})

我的候选细节模型

代码语言:javascript
复制
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
    }
})

我的候选人退职控制器

代码语言:javascript
复制
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
    })
  }
};

我是个新手,我需要你的帮助来理解和修正这个填充方法,我试着发送错误请求,比如

代码语言:javascript
复制
name": "ValidatorError",
                "message": "Path `candidateId` is required.",

这意味着它没有在candidateId中填充id。

EN

回答 1

Stack Overflow用户

发布于 2022-11-08 08:49:40

代码语言:javascript
复制
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
    });
  };
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74357719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档