gpt4 book ai didi

node.js - Mongoose findOneAndUpdate 不接受开关案例值

转载 作者:可可西里 更新时间:2023-11-01 09:24:02 24 4
gpt4 key购买 nike

我试图创建一个函数来更新 Mongoose 模型中不同类型的选项,但遇到了这种奇怪的行为。这就是我想要做的。

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 中的文档。有人能解释一下为什么第二个有效而不是第一个(不更新文档)。谢谢。

最佳答案

在ES6中,你可以定义computed keys使用括号表示法。

User.findOneAndUpdate(query, {
$set: {
[field]: status,
last_updated: moment().format('llll')
}
}, callback);

关于node.js - Mongoose findOneAndUpdate 不接受开关案例值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45355372/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com