I would update a collection setting the value only if the new values are not null. I have a code like this:
...
var userName = req.body.nome;
var userSurn
This version still allows for null string fields to be respected and updated. Omitted fields would be ignored.
const cleanedObject = Object.keys(origObject).reduce((acc, k) => {
if (typeof origObject[k] === "undefined") return acc;
acc[k] = origObject[k];
return acc;
}, {});
collection.update({_id:ObjectId(req.session.userID)}, cleanedObject })
You can use mongoose for that by casting req.body
to your model,
I assume you have mongoose model called User
, and in your controller,
var userModel = new User(req.body);
User.update({_id: req.session.userID}, userModel, {upsert: true}, function(err){
console.log("Error occured!");
});
There is no mongoose tag, but I strongly recomment to use that. For more details;
Mongoose Update
Mongoose Model