如何在 Node.js 中使用 Sequelize 运行 AND 和 Or 运算符

Posted

技术标签:

【中文标题】如何在 Node.js 中使用 Sequelize 运行 AND 和 Or 运算符【英文标题】:How to run AND and Or operator with Sequelize in Node.js 【发布时间】:2019-09-28 20:52:11 【问题描述】:

我是 Node.js 的新手,正在尝试在 Sequelize 中运行“与”和“或”运算符,mysql 查询是这样的

SELECT * from User WHERE (role = 'INSTRUCTOR') AND ((pix <> null) OR (description <> null)) OEDER BY id DESC

上面的 MySQL 查询是我想用 Sequelize 运行的,但它不起作用。

以下是我的 Sequelize 代码:

return await models.User.findAll(
        where: role: 'INSTRUCTOR', [Op.or]: [pix: [Op.ne]: null, description: [Op.ne]: null,], order: [['id', 'DESC']]
      )

如何在 Sequelize 中运行该查询?

【问题讨论】:

【参考方案1】:

格式化代码有时会有所帮助... 好像你放错了

return await models.User.findAll(
        where: 
            role:  [Op.eq]: 'INSTRUCTOR' ,
            [Op.or]: [
                  pix:  [Op.ne]: null , 
                  description:  [Op.ne]: null  
            ]
        , 
        order: [ ['id', 'DESC'] ]
      )

【讨论】:

以上是关于如何在 Node.js 中使用 Sequelize 运行 AND 和 Or 运算符的主要内容,如果未能解决你的问题,请参考以下文章

如何在 node.js 中使用 sequelize-npm 实现与连接表的一对多关系

如何在 Sequelize 中创建一个表以使用 Node JS 存储在 Postgresql 中

Node.js - 如何使用 Sequelize 交易

如何使用node.js控制sequelize中的内连接查询?

如何使用 Sequelize 和 node.js 进行批量插入

Node.js / Sequelize.js / Express.js - 如何插入多对多关联? (同步/异步?)