【问题标题】:Sequelize: Find All That Match the query (Case Insensitive)Sequelize:查找与查询匹配的所有内容(不区分大小写)
【发布时间】:2020-08-02 22:50:37
【问题描述】:

如果我有一个 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,则需要将 % 符号放在点之前。
  • . 前面的符号是什么意思。 ?

标签: javascript node.js sequelize.js


【解决方案1】:

这不是 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,
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-09
    • 2018-10-17
    • 1970-01-01
    • 1970-01-01
    • 2020-07-12
    • 1970-01-01
    • 2020-07-27
    相关资源
    最近更新 更多