nodejs中sequelize的where操作符详解,包括举例说明

Posted 秋9

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodejs中sequelize的where操作符详解,包括举例说明相关的知识,希望对你有一定的参考价值。

目录

1、sequelize where操作符

2、操作符举例

2.1 Op.and

2.2 Op.or

2.3 Op.in


1、sequelize where操作符


const Op = require("sequelize");
Post.findAll(
  where:
    [Op.and]: [ a: 5 , b: 6 ],            // (a = 5) AND (b = 6)
    [Op.or]: [ a: 5 , b: 6 ],             // (a = 5) OR (b = 6)
      
    某个属性:
      // 基本
      [Op.eq]: 3,                              // = 3
      [Op.ne]: 20,                             // != 20
      [Op.is]: null,                           // IS NULL
      [Op.not]: true,                          // IS NOT TRUE
      [Op.or]: [5, 6],                         // (someAttribute = 5) OR (someAttribute = 6)

      // 使用方言特定的列标识符 (以下示例中使用 PG):
      [Op.col]: 'user.organization_id',        // = "user"."organization_id"

      // 数字比较
      [Op.gt]: 6,                              // > 6
      [Op.gte]: 6,                             // >= 6
      [Op.lt]: 10,                             // < 10
      [Op.lte]: 10,                            // <= 10
      [Op.between]: [6, 10],                   // BETWEEN 6 AND 10
      [Op.notBetween]: [11, 15],               // NOT BETWEEN 11 AND 15

      // 其它操作符

      [Op.all]: sequelize.literal('SELECT 1'), // > ALL (SELECT 1)

      [Op.in]: [1, 2],                         // IN [1, 2]
      [Op.notIn]: [1, 2],                      // NOT IN [1, 2]

      [Op.like]: '%hat',                       // LIKE '%hat'
      [Op.notLike]: '%hat',                    // NOT LIKE '%hat'
      [Op.startsWith]: 'hat',                  // LIKE 'hat%'
      [Op.endsWith]: 'hat',                    // LIKE '%hat'
      [Op.substring]: 'hat',                   // LIKE '%hat%'
      [Op.iLike]: '%hat',                      // ILIKE '%hat' (不区分大小写) (仅 PG)
      [Op.notILike]: '%hat',                   // NOT ILIKE '%hat'  (仅 PG)
      [Op.regexp]: '^[h|a|t]',                 // REGEXP/~ '^[h|a|t]' (仅 mysql/PG)
      [Op.notRegexp]: '^[h|a|t]',              // NOT REGEXP/!~ '^[h|a|t]' (仅 MySQL/PG)
      [Op.iRegexp]: '^[h|a|t]',                // ~* '^[h|a|t]' (仅 PG)
      [Op.notIRegexp]: '^[h|a|t]',             // !~* '^[h|a|t]' (仅 PG)

      [Op.any]: [2, 3],                        // ANY ARRAY[2, 3]::INTEGER (仅 PG)
      [Op.match]: Sequelize.fn('to_tsquery', 'fat & rat') // 匹配文本搜索字符串 'fat' 和 'rat' (仅 PG)

      // 在 Postgres 中, Op.like/Op.iLike/Op.notLike 可以结合 Op.any 使用:
      [Op.like]: [Op.any]: ['cat', 'hat']  // LIKE ANY ARRAY['cat', 'hat']
   
 
);

2、操作符举例

2.1 Op.and

// select * from User where name = '小徐' and age = 18;

const users = await User.findAll( 
    where:  
        [Op.and]:[
            name: '小徐',
            age: 18
        ]
      
)


2.2 Op.or

// select * from User where age = 18 or age = 19;
const users = await User.findAll( 
    where:  
        [Op.or]:[
            age: 18 ,
            age: 19
        ]
      
)

const users = await User.findAll( 
    where:  
        age:
            [Op.or]:[18,19]
       
      
)


2.3 Op.in


const users = User.findAll(
    where:
        id:
            [Op.in]:[1,2,3]
       
   
)
// 上下等效
const users = User.findAll(
    where:
        id:[1,2,3]
   
)

以上是关于nodejs中sequelize的where操作符详解,包括举例说明的主要内容,如果未能解决你的问题,请参考以下文章

egg.js 24.12sequelize模型-where操作符

全栈项目|小书架|服务器开发-NodeJS 中使用 Sequelize 操作 MySQL数据库

nodejs使用sequelize操作mysql实例

nodejs使用Sequelize框架操作数据库

Sequelize:WHERE LIKE 子句中的 Concat 字段

在使用急切加载的 findOne Sequelize 方法期间,Nodejs 堆内存不足