【问题标题】:Multiple where with $or sequelize使用 $ 或 sequelize 的多个 where
【发布时间】:2020-05-31 21:02:46
【问题描述】:

我尝试通过使用 where 子句和 $or in sequelize 提供的电子邮件来获取所有用户。

Where in sequelize

所以我从我的电子邮件数组中为多个这样的地方创建了查询:

[ { email: 'email1@gmail.com' }, { email: 'email@gmail.com' } ]

然后我尝试以多种方式获取它,例如:

const allExistedUsers = await User.findAll({
  where: { $or: multileWhere }
});

根据post 和文档中的回答,它应该可以工作:

{ $and: [{"Key1": "Value1"}, {"Key2": "Value2"}] }

但它不起作用。我不知道该怎么做。

【问题讨论】:

    标签: javascript node.js sequelize.js


    【解决方案1】:

    您的电子邮件作为数组:

    const mails = [ { email: 'email1@gmail.com' }, { email: 'email@gmail.com' } ];
    const yourEmailsArray = mails.map( el => { return el.email; });
    

    然后您可以连接您的电子邮件。续集格式:

    WHERE (`User`.`email` = 'email1@gmail.com' OR `User`.`email` = 'email2@gmail.com')
    
    const allExistedUsers = await User.findAll({
     where: {      
               email: { [Op.or]: [].concat(yourEmailsArray)}
           }
    });
    

    【讨论】:

      【解决方案2】:

      我使用这篇文章中的另一种方法做到了 here

      const allExistedUsers = await User.findAll({
        where: { email: { [Op.or]: usersEmailsToAssign } }
      });
      

      usersEmailsToAssign 是一个带有字符串的数组

      【讨论】:

        猜你喜欢
        • 2017-07-26
        • 2017-07-16
        • 2012-06-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多