0
var CandidateProfileSchema = new Schema({
Skills: {
programmingLang: [{text: String}],
scriptingLang: [{text: String}],
tools: [{text: String}],
ide: [{text: String}],
},
//more fields
});
exports.updateOptPrefs = function(req, res) {
console.log(req.body);
if(req.body._id) { delete req.body._id; }
CandidateProfile.findOne({userId:req.params.id}, function (err, candidateProfile) {
if (err) { return handleError(res, err); }
if(!candidateProfile) { return res.send(404); }
candidateProfile.Skills.programmingLang= req.body.Skills.programmingLang;
candidateProfile.Skills.scriptingLang= req.body.Skills.scriptingLang;
candidateProfile.Skills.tools=req.body.Skills.tools;
candidateProfile.Skills.ide=req.body.Skills.ide;
//.... other fields
candidateProfile.save(function (err) {
if (err) { return handleError(res, err); }
return res.json(200, candidateProfile);
});
});
};
어떻게 든 mongodb 문서의 programmingLang 필드 만 복사합니다. 우리는이 문제에 대해 약 5 시간을 보냈으며 우리가 여기서 만들고있는 실수를 누군가 지적 할 수 있다면 매우 기쁠 것입니다.부분 데이터 저장 업데이트
가 나 : 'candidateProfile.Skills = _.extend (candidateProfile.Skills, req.body.Skills을),' – teleaziz
당신이 teleaziz 감사합니다, 당신은 우리에게 많은 시간을 저장 :) – Vineet
내가 가진 큰 candidateProfile 스키마 candidateProfile ({ 기술 : {....} 기타 : [{ typeExp : 문자열, 조직 : 문자열, 의 startDate : 문자열, endDate가 : 문자열, 역할 : 문자열, 설명 : 문자열, 업적 : 문자열 }], // 추가 필드 기본적으로 Skills 나 Other Exp 같은 각 파트를 각각 업데이트합니다. 위의 기술 부분에서 제안 된 병합을 사용하면 위대한 기능을 발휘합니다. 위와 같이 다른 Exp에 대해 동일한 코드를 사용하려고하면 동일한 데이터로 2 행을 얻습니다. 문제가 보입니까? – Vineet