Sequelize:Find All That Match the query(区分大小写)



如果我有一个context.data.filename="DOC.DOC",并且数据库记录包含记录,例如DOC.DOC和DOC-1.DOC,那么它应该返回两个数据和employeeId,但现在它只返回匹配的DOC.DOC,这是错误的,它也应该返回DOC-1,因为它匹配模式。

你们知道吗?非常感谢。

#代码

const file = await context.service.Model.findAll({
where: {
filename: {
[Op.like]: `%${context.data.filename}%`,
},
employeeId: record.id,
},
paranoid: false,
});

这不是sequelize的问题。如果您正在搜索DOC.doc并希望找到DOC-1.doc,则需要将%符号放在点之前。CCD_ 4表示";任何字符的任何数目";。因此,您的搜索查询应该看起来像DOC%.doc

例如:

const filename = '%' + context.data.filename.replace('.', '%.')  + '%';
const file = await context.service.Model.findAll({
where: {
filename: {
[Op.like]: filename,
},
employeeId: record.id,
},
paranoid: false,
});

最新更新