NodeJS sequelize中不区分大小写的搜索

mpbci0fu  于 2023-02-03  发布在  Node.js
关注(0)|答案(3)|浏览(207)

我想通过邮箱搜索用户。有没有办法忽略大小写搜索用户?如果数据库中的用户有邮箱abc@gmail.com,那么即使我给where{email:ABc@gmail.com}},也应该能找到用户。
当前查询

User.findOne({ where: { email }, include: [...eagerModels] });
cvxl0en2

cvxl0en21#

尝试使用Op.iLike

User.findOne({ where: { email: { [Op.iLike]: email } }, include: [...eagerModels] });
ygya80vv

ygya80vv2#

使用%like%查询,Sequelize默认使用Symbol操作符,以最小化在查询中注入操作符的风险;建议以后使用符号运算符。

const Sequelize = require('sequelize');
    const Op = Sequelize.Op;

    let data = await User.findAll({
      where: {
        name: {
          [Op.like]: '%abc@gmail.com%'
        }
      }
    });
thtygnil

thtygnil3#

用这个

User.findOne({ where: { email: { [Op.iLike]: `%${email}%` } }, include: [...eagerModels] });

参考文献

相关问题