nodejs中sequelize的where操作符详解,包括举例说明
Posted 秋9
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodejs中sequelize的where操作符详解,包括举例说明相关的知识,希望对你有一定的参考价值。
目录
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数据库