鉴于我有一个名为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
})
$iLike
是Sequelize
谢谢!
答案 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
})