使用 sequelize 检查数据库输入属性(即数组)是否具有给定项。 拥有包含数据事件 的 Postgres 数据库。 想要获得一个具有这些 weekDays 中任何一个的Event。 weekDays 的类型是 ARRAY(整数)。
Events.findOne({
where: {
weekDays: {
$contains: [2, 3],
},
},
});
尝试使用 $contains、$any 或 $like $any 但总是得到相同的错误消息。
TypeError: values.map is not a function
真诚的感谢
最佳答案
您正在寻找重叠的值。 weekDays
数组中与传入数组中的任何值匹配的任何值。
因此,您可以使用 PG 特定的 Sequelize.Op.overlap
运算符:
然后可以像这样使用
Events.findOne({
where: {
weekDays: {
[Sequelize.Op.overlap]: [2, 3],
},
},
});
关于sql - Sequelize : overlapping - Checking if any value in array matches any value in the passed array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48326311/