0
使用MEAN堆棧,我試圖讓管理員帳戶更新另一個用戶的信息,在這種情況下,他們的標題/角色在網站上。我遇到的問題是編輯用戶時唯一可用的功能是save()函數。這可能是我可以利用更新功能,如果是這樣的話,請讓我知道,但它看起來並不可能:MongoDB - 保存與更新文檔中的特定字段
出現的問題是,當用戶保存,它創建一個新文檔,並將用戶的密碼和salt覆蓋到某個值。我希望能夠調用「更新」功能,只會更新一個領域,但我不知道如何。有沒有辦法做到這一點與保存功能?
相關代碼:
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函數,看到:
的ARGS看起來要建設權,這_id我們的目標是,什麼動作,看出:
但隨後運行後,似乎沒有任何改變。我非常難過。