如何在Sequelize中对Postgres数组执行where查询

3
我有一个模型,它将keywords列定义为字符串数组。现在我想查询所有不包含特定关键词的条目在keywords列中。我的方法并没有像预期那样起作用。
模型:
export default function (sequelize, DataTypes) {
    return sequelize.define('transaction', {
        id: {
            primaryKey: true,
            type: DataTypes.INTEGER,
            autoIncrement: true
        },

        keywords: {
            type: DataTypes.ARRAY(DataTypes.TEXT),
            defaultValue: []
        },
        createdAt: DataTypes.DATE,
        updatedAt: DataTypes.DATE
    });
}

查询:

const transactions = await db.transaction.findAll({
    where: {keywords: {[Op.notLike]: '%MyKey%'}}
}).catch(e => log.error(e));

// Throws error: TypeError: values.map is not a function

依赖项:

"pg": "6.4.1",
"pg-hstore": "^2.3.2",
"sequelize": "^4.28.8",
1个回答

0

1
也许不是在Postgres中,但我期望Sequelize适配器将数组解析为文本,然后应用NOT LIKE运算符。 - Karl Adler

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接