更新嵌套对象时不会引发错误,但 mongodb 中的数据未更新

While updating the nested objects no error is thrown but data is not updating in the mongodb

提问人:Jatin Thakur 提问时间:10/18/2023 最后编辑:Jatin Thakur 更新时间:10/18/2023 访问量:14

问:

我想更新的mongodb数据库的架构,

const skillSchema = new mongoose.Schema({
    skillName: {type: String,default:""},
    skillRating: {type: Number,default:0},
    skillComment: {type: String,default:""}
});

const listSchema = new mongoose.Schema({
    candidateName: String,
    candidateEmail: String,
    candidateContactNo: Number,
    project: String,
    levelOfInterview: String,
    positionName: String,
    interviewerMailId: String,
    recruiterName: String,
    moi: String,
    schDate: String, 
    startTime: String,
    endingTime: String,
    isoDateTime: Date, 
    cmnt: String,
    meetingId: String,
    feedback:{
        panlistEcode: {type: String,default:""},
        panlistName: {type: String,default:""},
        skillsForJob: {type: Number,default:0},
        communicationSkill:{type: Number,default:0},
        teamHandling: {type: Number,default:0},
        management: {type: Number,default:0},
        finalScore: {type: Number,default:0},
        techSkills: [skillSchema],
        finalStatus: {type: String,default:""},
        comments: {type: String,default:""}
    },
    feedbackSubmitStatus: Boolean
});

尝试使用以下代码更新数据,该字段的其余部分已经使用与此类似的其他代码进行更新,但这不会更新:

let techSkillArr = [];
            for(let i=1; i<=5; i++){
                let j = i.toString()
                let name = "skillsName"+j;
                let rating = "skillsRatings"+j;
                let comment = "skillsComments"+j;
                let obj = {
                    skillName: fetchedData[name],
                    skillRating: fetchedData[rating],
                    skillComment: fetchedData[comment]
                };

                techSkillArr.push(obj);
            }
            
            List.findOneAndUpdate({_id:fetchedData.id},{ 
                recruiterName:fetchedData.rName,
                feedback:{
                    panlistEcode: fetchedData.pEcode,
                    panlistName: fetchedData.pName,
                    skillsForJob: fetchedData.skillNeededForJob,
                    communicationSkill: fetchedData.communicationSkill,
                    teamHandling: fetchedData.teamHandling,
                    management: fetchedData.management,
                    finalScore: fetchedData.finalScore,
                    techSkills: techSkillArr,
                    finalStatus: fetchedData.finalStatus,
                    comments: fetchedData.comments
                },
                feedbackSubmitStatus:true },{returnOriginal: false}).then(()=>{
                    console.log("Feedback Data Updated Succesfully");
                }
           );    

我需要用我获取的数据更新字段,数据应该在数据库中更新

对象 嵌套

评论


答: 暂无答案