我有一个模型,它将列 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",

最佳答案

我不确定在 Postgresql 中是否真的有一个数组函数/运算符可以做到这一点。我只能看到包含

https://www.postgresql.org/docs/9.1/static/functions-array.html

关于node.js - 如何在 Sequelize 中对 postgres 数组执行 where 查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48188992/

10-10 00:34