Ошибка при использовании оператора $switch, где ошибка?

Народ, прошу помощи. Недавно взялся за монгу и тут такая ошибка, вроде делаю все по документации, но ничего не выходит...

Ошибка:
5f2f2ddca84de520645344.png

Схема:
const mongoose = require('mongoose');
const users = mongoose.Schema({
    vkid: Number,
    pers: {
        lucky: Number
    }
});
module.exports = mongoose.model('Users', users);

Код:
await users.updateMany({ vkid: id }, {
                $set: {
                    "pers.lucky": {
                        $switch: {
                            branches: [
                                { case: message.messagePayload.command === 'первый', then: 1 },
                                { case: message.messagePayload.command === 'второй', then: 2 },
                                { case: message.messagePayload.command === 'третий', then: 3 }
                            ], default: 69
                        }
                    }
                }
            });


В самом коде нужно заменить несколько объектов, просто в качестве примера привёл такой код, но ошибка одна и та же.

upd: когда пишу так, то все работает:
await users.updateMany({ vkid: id }, {
                    $set: {
                        "pers.lucky": 5
                    }
                });
  • Вопрос задан
  • 103 просмотра
Решения вопроса 1
@fostsinger
нужно использовать оператор $eq вместо ===
await users.updateMany({ vkid: id }, {
                $set: {
                    "pers.lucky": {
                        $switch: {
                            branches: [
  {
                        case: {$eq: ["$message.messagePayload.command",  'первый',]},
                        then: 1
                    }, ], default: 69
                        }
                    }
                }
            });
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы