Ich habe versucht, eine einzige Funktion zu erstellen, um verschiedene Arten von Optionen im Mongoose-Modell zu aktualisieren, und stieß auf dieses seltsame Verhalten. Hier ist, was ich versucht habe zu tun.Mongoose findOneAndUpdate akzeptiert keine Switch-Case-Werte
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);
};
Nun, wenn ich versuche, so etwas wie:
User.findOneAndUpdate(query, {
$set: {
'edit_permission': status,
last_updated: moment().format('llll')
}
}, callback);
};
Es aktualisiert das Dokument tatsächlich im mongodb. Kann mir jemand erklären, warum der zweite funktioniert und nicht der erste (aktualisiert das Dokument nicht). Vielen Dank.