我正在尝试使用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'存在于两者中。
答案 0 :(得分:0)
你需要使用findAll({ 其中:{关键字:{$ contains:[&#39; keyword1&#39;,&#39; keyword2&#39;]}})因为find()结果将成为Keywoards表的第一个条目,其中包含keyword1 < / p>
答案 1 :(得分:0)
我认为这是因为搜索基于&#34; AND&#34;而不是&#34;或&#34;, 只有当数组包含这两个值时才会返回。
在续集文档中搜索$或运算符,以实现您正在寻找的内容。