Arrays 如何使用sequelize在Postgresql中搜索具有多个搜索值的数组?

Arrays 如何使用sequelize在Postgresql中搜索具有多个搜索值的数组?,arrays,postgresql,sequelize.js,Arrays,Postgresql,Sequelize.js,我试图使用sequelize在存储文本数组的postgreSql列中搜索选项数组 我可以用一个值进行搜索,但当我给出多个值时,sequelize只会在存在精确匹配的情况下返回一条记录 乙二醇 使用 find({ where : { keywords : {$contains: ['keyword1']} } }) 返回两个记录,但 find({ where : { keywords : {$contains: ['keyword1','keyword2']} } }) 仅返回第一个,即使“关

我试图使用sequelize在存储文本数组的postgreSql列中搜索选项数组

我可以用一个值进行搜索,但当我给出多个值时,sequelize只会在存在精确匹配的情况下返回一条记录

乙二醇

使用

find({
where : { keywords : {$contains: ['keyword1']} } })
返回两个记录,但

find({
where : { keywords : {$contains: ['keyword1','keyword2']} } })
仅返回第一个,即使“关键字1”在这两个字段中都存在

您需要使用findAll({ 其中:{keywords:{$contains:['keyword1','keyword2']}}),因为with find()结果将是keyword1的Keywoards表的第一个条目,您需要使用findAll({
其中:{keywords:{$contains:['keyword1','keyword2']}})因为with find()结果将是keyword1的Keywoards表的第一个条目,我认为这是因为搜索基于“AND”而不是“OR”, 只有当数组包含这两个值时,才会返回


在sequelize docs中搜索$or operator以实现您所需的功能。

我认为这是因为搜索基于“AND”而不是“or”, 只有当数组包含这两个值时,才会返回

在sequelize文档中搜索$或operator,以实现您想要的

find({
where : { keywords : {$contains: ['keyword1','keyword2']} } })