簡體   English   中英

序列化PostgreSQL:查詢以查看字符串是否在數組中

[英]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
})

$iLikeSequelize中特殊的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM