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

时间:2017-11-28 17:19:46

标签: arrays postgresql sequelize.js

我正在尝试使用sequelize搜索一个选择数组,以便在存储文本数组的postgreSql列中进行搜索。

我可以使用一个值进行搜索,但是当我给出多个值时,如果存在完全匹配,则sequelize仅返回记录。

例如

id | keywords
1  | ['keyword1', 'keyword2', 'keyword3']
2  | ['keyword1', 'keyword two']

使用

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

返回两个记录,但

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

只返回第一个,即使' keyword1'存在于两者中。

2 个答案:

答案 0 :(得分:0)

你需要使用findAll({ 其中:{关键字:{$ contains:[&#39; keyword1&#39;,&#39; keyword2&#39;]}})因为find()结果将成为Keywoards表的第一个条目,其中包含keyword1 < / p>

答案 1 :(得分:0)

我认为这是因为搜索基于&#34; AND&#34;而不是&#34;或&#34;, 只有当数组包含这两个值时才会返回。

在续集文档中搜索$或运算符,以实现您正在寻找的内容。