sql - Sequelize : overlapping - Checking if any value in array matches any value in the passed array

标签 sql node.js database postgresql sequelize.js

使用 sequelize 检查数据库输入属性(即数组)是否具有给定项。 拥有包含数据事件 的 Postgres 数据库。 想要获得一个具有这些 weekDays 中任何一个的EventweekDays 的类型是 ARRAY(整数)。

Events.findOne({
  where: {
    weekDays: {
      $contains: [2, 3],
    },
  },
});

尝试使用 $contains、$any 或 $like $any 但总是得到相同的错误消息。

TypeError: values.map is not a function

真诚的感谢

最佳答案

您正在寻找重叠的值。 weekDays 数组中与传入数组中的任何值匹配的任何值。

因此,您可以使用 PG 特定的 Sequelize.Op.overlap 运算符:

See documentation here

然后可以像这样使用

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/

相关文章:

node.js - 关键字导入为 bcrypt 包返回 undefined

node.js - 我应该如何保证涉及金融交易操作的数据库的一致性

sql - 当插入事件发生时,我可以将列值更新到触发器中吗?

node.js - 如何在 GraphQL 中执行突变?

sql - MS-Access慢查询

node.js - 快速记录颜色格式

mysql - 为什么 MySQL 索引在原始计算机的 AMI 副本中不起作用?

database - 收集、维护和确保庞大数据集准确性的最佳实践是什么?

mysql - 如何在 mysql 中将值逐行求和?

mysql - SQL 查询结果到 XML - Orders, OrderDetails