Я хочу обновить некоторые ключи и значения в базе данных.У меня уже есть некоторые поля, заполненные как firstname
, lastname
, и теперь я хочу обновить эти документы с помощью изображения профиля, номера контакта и т. Д.
Когда я передаю эти значения, используя update
, тогда поля, которыеуже установлено, становится нулевым, то есть firstname
и lastname
становятся нулевым.Я хочу, чтобы firstname
и lastname
были установлены как прежде, если пользователь не хочет обновлять эти значения и обновлять только более поздние значения внутри документа.
Если пользователь хочет обновить оба firstname
иlastname
, а также фото профиля, затем я хочу, чтобы они тоже обновлялись.
Я использовал метод обновления mongo и запросил новое значение для обновления.Я передал новые значения через почтальона, но не передаю старые значения, которые уже были в базе данных.При обновлении он показывает ноль для тех, чьи значения.
router.put('/:id/edit',upload.array("images",2),function(req,res,next){
shopid= req.params.id,
console.log(req.body);
User.find({"_id":shopid}).update({
firstname: req.body.firstname,
lastname: req.body.lastname,
contact_no : req.body.contact_no,
images:{
shop_logo:req.files[0].path,
shop_picture: req.files[1].path,
},
shopname:req.body.shopname,
updated_at: Date.now(),
},function(err,data){
if(err){
res.json(err);
}else{
res.json(data);
}
});
});
Результат:
_id: "5ce29ba3e0c2d825d9e5a39f"
firstname: null
lastname: "Gyaawali"
geo: Array
shopkeeper: true
created_at: 2019-05-20T12:20:51.407+00:00
updated_at: 2019-05-23T15:00:04.442+00:00
__v: 0
contact_no: 9837949483
pan_no:"55343fASDE"
images: Object
shop_logo: "public/shop_logo/images-1558623604437-flag-map-of-nepal-logo-C43E9EAFA..."
shop_picture: "public/shop_logo/images-1558623604439-flat-sale-background_23-21477500..."
shopname: "Hello.shop"
Я не ожидаю, что поле firstname
будет изменено.Но оно меняется на ноль.