![](/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.