Sequelize - 在数组列中查找项目

时间:2017-05-04 12:20:45

标签: arrays node.js field sequelize.js

我在表格中有一个列/字段,基本上是逗号分隔的项目。我正在尝试搜索其中一个项目是否存在于逗号分隔项目的众多列表中。我用续集来做这件事,它正在惹恼我。我正在使用这种语法,它说错了:

findOne({
            where: {
                new_hooks: {
                    $contains: [myvaiablehere]
                }
            }
        })

new_hooks是一个存储为逗号分隔项列表的数组的字段。此字段内的文本搜索也很好,因为这些项目是唯一的

3 个答案:

答案 0 :(得分:1)

如果你在关于$contains的码头办理登机手续,你会注意到它是PG array contains operator - 也就是说,这是一个特定于postgres的功能。所以,你不应该使用它。请尝试$like

findOne({
    where: {
        new_hooks: {
            $like: ['%' + myvaiablehere + '%']
        }
    }
})

答案 1 :(得分:1)

您可以尝试以下代码:

arrayColumn: { [Op.contains]: ["1"] }
具有Op

是从sequelize导出的

const { Op } = require('sequelize');

答案 2 :(得分:1)

就我而言,我使用

flag: { [Op.contains]: "{Brazil}" }

它有效了