Sequelize:查询ARRAY是否包含值

时间:2015-03-13 15:38:19

标签: postgresql sequelize.js

假设我有一个PG ARRAY字段:

id |    array    |
===|=============|
  1|{"1","2","3"}|

如何使用sequelize查询以查看数组字段是否为值1

我试过了:

array: { $contains: "1" }

给了我:

array @> "1"

有错误:

Possibly unhandled SequelizeDatabaseError: array value must start with "{" or dimension information

更新

我能够做到:     数组:{$ contains:'{'+ value +'}'}

有更正确的方法吗?

2 个答案:

答案 0 :(得分:19)

我意识到sequelize期待条件是一个数组:

array: { [Op.contains]: ["1"] }

那会有效。干杯!!

请记住,Op是从sequelize

导出的
const { Op } = require('sequelize');

答案 1 :(得分:0)

也许是

`{ genres: { $contains: [genreType] } }`

genres是一个数组。 genreType也可以是一个数组。

const Sequelize = require('sequelize');

const sequelize = new Sequelize('database', 'username', 'password', {
  host: 'localhost',
  dialect: /* one of 'mysql' | 'mariadb' | 'postgres' | 'mssql' */,
  operatorsAliases: Sequelize.Op.Aliases,
});