我正在尝试根据学号更新特定学生的详细信息。我不知道如何使用findById更新整个学生的详细信息。我可以从前端获得更新值并将其发送到服务器,但从服务器我可以将更新值发送到mongoDB,但我不知道如何更新。请帮助我。
这是我的服务器代码:
server.post('/update',urlencodedParser,function(req,res){
var response={
Id:req.body.Id,
Fname : req.body.Fname,
age:req.body.age,
Lname : req.body.Lname,
dob : req.body.dob,
pob : req.body.pob,
month : req.body.month,
nation : req.body.nation,
mothertongue : req.body.mothertongue,
bloodgroup : req.body.bloodgroup,
fatherfname : req.body.fatherfname,
fatherlname : req.body.fatherlname,
occupation : req.body.occupation,
placeofwork : req.body.placeofwork,
officaladd : req.body.officaladd,
emailid : req.body.emailid,
phoneno : req.body.phoneno,
mobileno : req.body.mobileno,
motherfname : req.body.motherfname,
motherlname : req.body.motherlname,
motheroccupation : req.body.motheroccupation,
motherplaceofwork : req.body.motherplaceofwork,
motherofficaladd : req.body.motherofficaladd,
motheremailid : req.body.motheremailid,
motherphoneno : req.body.motherphoneno,
mothermobileno : req.body.mothermobileno,
adress : req.body.adress,
emergencyadress : req.body.emergencyadress,
emergencyphone1 : req.body.emergencyphone1,
emergencyphone2 : req.body.emergencyphone2,
relationship1 : req.body.relationship1,
relationship2 : req.body.relationship2
}
databaseInterface.updateStudent(response, function(err, valss){
if(err) res.send('ERROR!');
console.log(valss);
res.send(valss);
})
})
这是我的 Mongoose 代码:
function updateStudent(response,callback) {
console.log(response)
User.findById(response.Id, function(err, studentcollection2) {
if (err) return callback(err);
studentcollection2 = response;
return callback(null, studentcollection2);
});
}
3条答案
按热度按时间qcuzuvrc1#
Mongoose提供了一个特定的查找和更新功能,您缺少的主要瘦是{$set:response}。Mongoose会将存储ID中的每个值替换为response中的相应值。只需确保Mongoose用户架构允许所有这些操作。代码的第二部分应该如下所示:
pzfprimi2#
这是我想出来的答案。
t98cgbkg3#
更新整个文档而无需指定每个字段的一种方法如下:
你可能会添加一个尝试捕捉和其他东西,但我想显示明确的东方方式!