Используя стек MEAN, я пытаюсь обновить учетную запись администратора, в этом случае их название/роль на сайте. Проблема заключается в том, что единственной функцией, доступной при редактировании пользователя, является функция save(). Может быть, я могу использовать функцию обновления, и если это так, пожалуйста, дайте мне знать, но это не выглядит возможным:MongoDB - Save vs Update для определенных полей в документе
возникает проблема, когда пользователь будет сохранен, его создает новый документ и перезаписывает пароль пользователя и соль для некоторого значения. Я хотел бы иметь возможность вызвать функцию «обновления», которая будет обновлять только одно поле, но я не могу понять, как это сделать. Есть ли способ сделать это с помощью функции сохранения?
Соответствующий код:
exports.updateUserRoles = function(req, res) {
var currUser = req.body;
User.findById(currUser._id, function(err, user) {
//user.roles = currUser.roles;
user.save({ _id : '56467b28ba57d8d890242cfa', roles : 'admin' });
//THE BELOW WAS A PREVIOUS ATTEMPT
/*user.save(function(err) {
if (err) {
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
} else {
res.jsonp(user);
console.log('test2');
}
});*/
});
};
Пытаясь что-то другое, что кажется очень близко, но до сих пор не совсем там еще.
Вот что я бегу:
exports.updateUserRoles = function(req, res) {
var currUser = req.body;
User.findById(currUser._id, function(err, user) {
//user.roles = currUser.roles;
//user.roles.set(0, 'admin');
console.log('test');
user.update(
{ _id: '56467b28ba57d8d890242cfa' },
{
$set: {
roles: 'admin',
},
}
);
console.log('test2');
});
};
После удара user.update линии, у нас есть пользователю в локальных переменных, видно:
user.update идет в этой функции Document.prototype.update, см.:
В арг смотреть строить права, которые _ID мы нацелены на то, что и действие, видно:
Но затем после запуска, ничего, кажется, меняется. Я очень взволнован.