我試圖創建一個函數來更新Mongoose模型中的不同類型的選項,並遇到了這種奇怪的行爲。 這就是我想要做的。現在Mongoose findOneAndUpdate不接受切換大小寫值
module.exports.updateUser = function(id, action, status, callback) {
const query = {
_id: id
};
let field = '';
switch (action) {
case 'download':
field = 'download_permission';
break;
case 'upload':
field = 'upload_permission';
break;
case 'view':
field = 'view_permission';
break;
case 'edit':
field = 'edit_permission';
break;
}
User.findOneAndUpdate(query, {
$set: {
field: status,
last_updated: moment().format('llll')
}
}, callback);
};
,如果我嘗試類似:
User.findOneAndUpdate(query, {
$set: {
'edit_permission': status,
last_updated: moment().format('llll')
}
}, callback);
};
它實際上更新MongoDB的文檔。 有人可以解釋爲什麼第二件作品,而不是第一件作品(不更新文件)。謝謝。