使用sequelize检查db输入属性(即array)是否具有给定项。
有一个带有数据事件的Postgres数据库。
想要获得一个可以在这些工作日中进行任何事件的事件。
weekDays的类型为ARRAY(整数)。
Events.findOne({
where: {
weekDays: {
$contains: [2, 3],
},
},
});
试图与$ contains,$ any或$ like $ any一起使用,但始终收到相同的错误消息。
衷心的感谢
最佳答案
您正在寻找重叠的值。 weekDays
数组中与传入数组中的任何值匹配的任何值。
这样,您可以使用PG特定的Sequelize.Op.overlap
运算符:
See documentation here
然后可以像
Events.findOne({
where: {
weekDays: {
[Sequelize.Op.overlap]: [2, 3],
},
},
});