我有一个名为Staff
的Sequelize模型。它有一个数组字段,描述如下:
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
字段中没有“instructor”的员工。
我已经阅读了文档中的此页面,建议我使用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
逻辑的组合存在误解。