2017-02-15 5 views
0

Я пытаюсь обновить данные конкретного студента здесь на основе идентификатора студента. Я не знаю, как обновить все данные о студенте с помощью findById. Я могу получить обновленные значения из внешнего интерфейса и отправить его на сервер, но с сервера я могу отправить обновленные значения в mongoDB, но там я не знаю, как обновлять. Пожалуйста, помогите мне.Как обновить весь объект в mongodb с помощью mongoose

это мой код сервера:

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); 
}) 
}) 

это мой мангуст код:

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); 
     }); 
    } 

ответ

0

Это ответ, который я придумал.

function updateStudent(response,callback) { 
     console.log(response.Id) 
     User.update({'Id':response.Id}, {$set:{ 
     'Firstname':response.Fname, 
     'Age' : response.age, 
     'Lastname' : response.Lname, 
     'DateOfBirth' : response.dob, 
     'PlaceOfBirth' : response.pob, 
     'Months' : response.month, 
     'Nationality' : response.nation, 
     'MotherTongue' : response.mothertongue, 
     'BloodGroup' : response.bloodgroup, 
     'Father.Firstname' : response.fatherfname, 
     'Father.Lastname' : response.fatherlname, 
     'Father.Occupation' : response.occupation, 
     'Father.PlaceOfWork' : response.placeofwork, 
     'Father.OfficialAddress' : response.officaladd, 
     'Father.EmailId' : response.emailid, 
     'Father.PhoneNo' : response.phoneno, 
     'Father.MobileNo' : response.mobileno, 
     'Mother.Firstname' : response.motherfname, 
     'Mother.Lastname' : response.motherlname, 
     'Mother.Occupation' : response.motheroccupation, 
     'Mother.PlaceOfWork' : response.motherplaceofwork, 
     'Mother.OfficialAddress' : response.motherofficaladd, 
     'Mother.EmailId' : response.motheremailid, 
     'Mother.PhoneNo' : response.motherphoneno, 
     'Mother.MobileNo' : response.mothermobileno, 
     'ResidentialAddress' :response.adress, 
     'EmergencyContactNumber.Address' : response.emergencyadress, 
     'EmergencyContactNumber.PhoneNo1' : response.emergencyphone1, 
     'EmergencyContactNumber.PhoneNo2' : response.emergencyphone2, 
     'EmergencyContactNumber.Relationship1' : response.relationship1, 
     'EmergencyContactNumber.Relationship2' : response.relationship2 
      } 
     }, function(err, studentcollection2) { 
      console.log(studentcollection2); 
      if (err) return callback(err); 
      return callback(null, 'success'); 
      }); 
     } 
0

Mongoose обеспечивает определенную функцию для поиска и обновления. Основной недостаток, который вам не хватает, - {$ set: response}. Mongoose заменит каждое значение в сохраненном идентификаторе соответствующим значением из ответа. Просто убедитесь, что ваш Mongoose Schema для пользователя позволит все это. Вторая часть вашего кода должна быть такой:

function updateStudent(response,callback) { 
    console.log(response) 
    User.findByIdAndUpdate(response.Id, {$set:response},function(err, studentcollection2) { 
     if (err) return callback(err); 
     return callback(null, 'success'); 
     }); 
    } 
+0

Это возврат не определен. И я получаю ERORR! как ответ –

+0

Является ли req.body.Id эквивалентным идентификатору, хранящемуся в Mongodb (идентификатор, используемый для индексирования, длиной 24 символа)? –

+0

нет. Я использую пользовательский идентификатор –

Смежные вопросы