У меня есть модель Sequelize, которая называется Staff
.В нем есть поле массива, описанное следующим образом:
const Staff = sequelize.define("staff", {
name: {
type: DataTypes.STRING,
},
email: {
type: DataTypes.STRING,
unique: true
},
password: {
type: DataTypes.STRING,
},
roles: {
type: DataTypes.ARRAY(DataTypes.STRING)
},
});
Я пытаюсь создать конечную точку GraphQL, которая обслуживает весь персонал, у которого нет «инструктора» в их поле roles
.
Я прочитал эту страницу документов , предлагая использовать комбинацию Sequelize.Op
.Итак, я создал это:
return Staff.findAll({
where: {
roles: {
[Sequelize.Op.not]: {[Sequelize.Op.contains]: ['instructor']},
}
}
}
)
Выше выдает ошибку:
"message": "values.map is not a function"
Однако, если я хочу попробовать запрос, который не является комбо, такой как:
return models.Staff.findAll({
where: {
roles: {
[Sequelize.Op.contains]: ['instructor']
}
}
}
)
Запрос выполняется правильно, это наводит меня на мысль, что у меня, возможно, есть синтаксическая ошибка или неправильное понимание того, как комбинируется логика Op
.