我正在尝试使用sequelize执行findall,在这里我使用$ like。
由于我需要使用$ like评估的字符串来自表单,并且更改了值或数字,因此我发送了序列化数组。
因此,我想对数组中的所有值使用$ like。
但是我还不能使它工作。
var conditions =Array[String];
for (var element in req.query.HotelID) {
console.log(req.query.HotelID[element])
conditions.push(
req.query.HotelID[element]
);
}
console.log('in loop')
console.log(conditions)
db.hotelamadeus.findAll({
where: {$and:{ Name: req.query.hotel, HotelID :{[Op.like]: { [Op.any]: conditions}}}},
attributes: ['HotelID','Name'],
})
字符串在req.query.HotelID中。
数组条件创建良好。
我想在表中找到将条件映射到“名称”和“酒店ID”字段上的值。
因此,我尝试执行许多帖子中所见的$ like $ any,但是我不确定sequelize是否可以处理它,因为它不起作用。
感谢您的帮助
答案 0 :(得分:0)
为什么不创建一个快速的实用函数,该函数使用数组和列名并遍历数组,并为此组合[Op.like]和[Op.or]?如果您使用like,则无论如何都需要在所需的位置附加%,这样您就可以做些操作