如果我有一个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
,则需要将%
符号放在点前面。 %
表示“任意字符的任意数字”。 因此您的搜索查询应该类似于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,
});