Sequelize 是一款基于 Node.js 的 ORM 框架,可以让我们更方便地操作数据库。在使用 Sequelize 进行查询时,操作符的使用非常重要,本文将详细介绍 Sequelize 中的操作符用法,帮助大家更好地使用 Sequelize 进行开发。
常用操作符
Sequelize 中常用的操作符包括:$eq、$ne、$gt、$gte、$lt、$lte、$in、$notIn、$between、$notBetween、$like、$notLike、$iLike、$notILike、$regexp、$notRegexp、$iRegexp、$notIRegexp、$col、$and、$or、$not、$any、$all 等。下面我们将逐一介绍它们的用法。
$eq
$eq 表示等于,用于查询指定字段等于某个值的记录,例如:
Model.findAll({
where: {
age: {
$eq: 18
}
}
});$ne
$ne 表示不等于,用于查询指定字段不等于某个值的记录,例如:
Model.findAll({
where: {
age: {
$ne: 18
}
}
});$gt
$gt 表示大于,用于查询指定字段大于某个值的记录,例如:
Model.findAll({
where: {
age: {
$gt: 18
}
}
});$gte
$gte 表示大于等于,用于查询指定字段大于等于某个值的记录,例如:
Model.findAll({
where: {
age: {
$gte: 18
}
}
});$lt
$lt 表示小于,用于查询指定字段小于某个值的记录,例如:
Model.findAll({
where: {
age: {
$lt: 18
}
}
});$lte
$lte 表示小于等于,用于查询指定字段小于等于某个值的记录,例如:
Model.findAll({
where: {
age: {
$lte: 18
}
}
});$in
$in 表示在某个范围内,用于查询指定字段在某个值范围内的记录,例如:
Model.findAll({
where: {
age: {
$in: [18, 19, 20]
}
}
});$notIn
$notIn 表示不在某个范围内,用于查询指定字段不在某个值范围内的记录,例如:
Model.findAll({
where: {
age: {
$notIn: [18, 19, 20]
}
}
});$between
$between 表示在某个区间内,用于查询指定字段在某个值区间内的记录,例如:
Model.findAll({
where: {
age: {
$between: [18, 20]
}
}
});$notBetween
$notBetween 表示不在某个区间内,用于查询指定字段不在某个值区间内的记录,例如:
Model.findAll({
where: {
age: {
$notBetween: [18, 20]
}
}
});$like
$like 表示模糊匹配,用于查询指定字段匹配某个模式的记录,例如:
Model.findAll({
where: {
name: {
$like: '%张%'
}
}
});$notLike
$notLike 表示不匹配,用于查询指定字段不匹配某个模式的记录,例如:
Model.findAll({
where: {
name: {
$notLike: '%张%'
}
}
});$iLike
$iLike 表示忽略大小写的模糊匹配,用于查询指定字段忽略大小写地匹配某个模式的记录,例如:
Model.findAll({
where: {
name: {
$iLike: '%张%'
}
}
});$notILike
$notILike 表示忽略大小写的不匹配,用于查询指定字段忽略大小写地不匹配某个模式的记录,例如:
Model.findAll({
where: {
name: {
$notILike: '%张%'
}
}
});$regexp
$regexp 表示正则匹配,用于查询指定字段匹配某个正则表达式的记录,例如:
Model.findAll({
where: {
name: {
$regexp: '^张'
}
}
});$notRegexp
$notRegexp 表示不匹配的正则表达式,用于查询指定字段不匹配某个正则表达式的记录,例如:
Model.findAll({
where: {
name: {
$notRegexp: '^张'
}
}
});$iRegexp
$iRegexp 表示忽略大小写的正则匹配,用于查询指定字段忽略大小写地匹配某个正则表达式的记录,例如:
Model.findAll({
where: {
name: {
$iRegexp: '^张'
}
}
});$notIRegexp
$notIRegexp 表示忽略大小写的不匹配的正则表达式,用于查询指定字段忽略大小写地不匹配某个正则表达式的记录,例如:
Model.findAll({
where: {
name: {
$notIRegexp: '^张'
}
}
});$col
$col 表示对另一个字段的引用,用于查询指定字段和另一个字段之间的关系,例如:
Model.findAll({
where: {
age: {
$gt: Sequelize.col('otherAge')
}
}
});$and
$and 表示逻辑与,用于查询满足多个条件的记录,例如:
Model.findAll({
where: {
$and: [
{ age: { $gt: 18 } },
{ name: { $like: '%张%' } }
]
}
});$or
$or 表示逻辑或,用于查询满足任意一个条件的记录,例如:
Model.findAll({
where: {
$or: [
{ age: { $gt: 18 } },
{ name: { $like: '%张%' } }
]
}
});$not
$not 表示逻辑非,用于查询不满足某个条件的记录,例如:
Model.findAll({
where: {
age: {
$not: 18
}
}
});$any
$any 表示在数组中任意一个元素满足条件,用于查询指定字段在数组中任意一个元素满足条件的记录,例如:
Model.findAll({
where: {
age: {
$any: [18, 19, 20]
}
}
});$all
$all 表示在数组中所有元素都满足条件,用于查询指定字段在数组中所有元素都满足条件的记录,例如:
Model.findAll({
where: {
age: {
$all: [18, 19, 20]
}
}
});小结
操作符是 Sequelize 中非常重要的一部分,使用操作符可以更加方便地查询数据库中的数据。本文详细介绍了 Sequelize 中常用的操作符及其用法,并给出了相应的示例代码,希望能对大家在使用 Sequelize 进行开发时有所帮助。
Source: FunTeaLearn,Please indicate the source for reprints https://funteas.com/post/67d34c47a941bf713463b809