Используйте предложение where с условием или в sequelize - PullRequest
0 голосов
/ 02 августа 2020

Я пытаюсь использовать или условие в sequelize для представления запроса, например,

SELECT * FROM table WHERE title = "title" OR genre = "genre"

, однако это то, что я уже пробовал

const checkTitle= await User.findOne({
        where: {
            $or: [
                { title: req.body.title },
                { genre: req.body.genre }
            ]
        }
    }).catch((err) => console.log(err.message));

, но это продолжает выдавать мне ошибку, в которой указано недопустимое значение

Invalid value { title: 'title' }

Интересно, как правильно использовать условие OR в sequelize?

1 Ответ

0 голосов
/ 02 августа 2020

Вам нужно поставить фигурные скобки после названия и жанра в вашем коде. Код должен выглядеть так:

const checkTitle= await User.findOne({
        where: {
            $or: [
                 title: {req.body.title },
                 genre: {req.body.genre }
            ]
        }
    }).catch((err) => console.log(err.message));

Синтаксис логических операций изменен в последней версии sequelize. Для

Sequelize> = 4,12

const checkTitle= await User.findOne({
        where: {
            [Op.or]: [
                title: {req.body.title },
                description: {req.body.genre }
            ]
        }
    }).catch((err) => console.log(err.message));
...