Sequelize PostgreSQL:查询字符串是否在数组中

时间:2016-12-07 04:23:37

标签: javascript sql postgresql sequelize.js

鉴于我有一个名为Model的模型,其中包含一个名为items的列,其中包含一个字符串数组,如何查询字符串queryString是否在数组中或在数组中有一个类似的元素吗?

实施例

items: ["cat", "dog", "bird", "turtle", "doe" ]

queryString = ["%do%","%b"]

应该返回

animalArray = ["dog", "doe", "bird"]

编辑:无论如何,还是以某种方式将$重叠与$ iLike配对?

Model.findAll({
    where: {
        items: { $in: { $iLike: { $any: queryString } } }
    }
}).then(function(array){
    // Do whatever here with array
})

$iLikeSequelize

中特殊的Postgres内容

谢谢!

1 个答案:

答案 0 :(得分:0)

尝试此解决方案。

第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
})
相关问题