![](/img/trans.png)
[英]Sequelize - does not contain a string within a PostgreSQL array query
[英]Sequelize PostgreSQL: query to see if string is within an array
假设我有一个名为Model
,该Model
的一列称为items
,该列包含一个字符串数组,那么如何查询以查看字符串queryString
是在数组中还是在数组中具有相似的元素?
例:
items: ["cat", "dog", "bird", "turtle", "doe" ]
queryString = ["%do%","%b"]
应该返回 :
animalArray = ["dog", "doe", "bird"]
编辑:是否有某种方式可以将$ iLike与$ overlap配对?
Model.findAll({
where: {
items: { $in: { $iLike: { $any: queryString } } }
}
}).then(function(array){
// Do whatever here with array
})
$iLike
是Sequelize中特殊的Postgres 工具
谢谢!
试试这个解决方案。
步骤1:创建一个新数组,存储您的条件
var conditions = [];
var queryString = ["%do%","%b"];
步骤2:循环查询字符串值
for(var x in queryString) {
// do something
}
步骤3:内部循环只需附加您的$like
条件
conditions.push({
items: {
$like: queryString[x]
}
});
所以你的数组会像这样
[{
items: {
$like: "%do%"
}
},{
items: {
$like: "%b"
}
}]
所以您的续集查询将像这样
var conditions = [];
var queryString = ["%do%","%b"];
for(var x in queryString) {
conditions.push({
items: {
$like: queryString[x]
}
});
}
Model.findAll({
where: {or: conditions}
}).then(function(array){
// Do whatever here with array
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.