📅  最后修改于: 2023-12-03 15:05:10.673000             🧑  作者: Mango
Sequelize是一个JavaScript ORM(Object-relational mapping)工具,可用于Node.js应用程序。它提供了各种操作数据库的方法和运算符。在本篇文章中,将介绍Sequelize运算符并提供代码示例。
用于组合多个条件,所有条件都必须为真。例如:
const { Op } = require('sequelize');
const users = await User.findAll({
where: {
[Op.and]: [{ firstName: 'John' }, { lastName: 'Doe' }],
}
});
上述代码将查询所有名为John Doe的用户。
用于组合多个条件,至少有一个条件为真。例如:
const { Op } = require('sequelize');
const users = await User.findAll({
where: {
[Op.or]: [{ firstName: 'John' }, { lastName: 'Doe' }],
}
});
上述代码将查询所有名字为John或姓氏为Doe的用户。
检查是否大于给定的值。例如:
const { Op } = require('sequelize');
const users = await User.findAll({
where: {
age: {
[Op.gt]: 18,
}
}
});
上述代码将查询所有年龄大于18岁的用户。
检查是否大于或等于给定的值。例如:
const { Op } = require('sequelize');
const users = await User.findAll({
where: {
age: {
[Op.gte]: 18,
}
}
});
上述代码将查询所有年龄大于或等于18岁的用户。
检查是否小于给定的值。例如:
const { Op } = require('sequelize');
const users = await User.findAll({
where: {
age: {
[Op.lt]: 18,
}
}
});
上述代码将查询所有年龄小于18岁的用户。
检查是否小于或等于给定的值。例如:
const { Op } = require('sequelize');
const users = await User.findAll({
where: {
age: {
[Op.lte]: 18,
}
}
});
上述代码将查询所有年龄小于或等于18岁的用户。
检查是否不等于给定的值。例如:
const { Op } = require('sequelize');
const users = await User.findAll({
where: {
age: {
[Op.ne]: 18,
}
}
});
上述代码将查询所有年龄不等于18岁的用户。
检查值是否在范围内。例如:
const { Op } = require('sequelize');
const users = await User.findAll({
where: {
age: {
[Op.between]: [18, 30],
}
}
});
上述代码将查询所有年龄在18岁到30岁之间的用户。
返回与条件相反的结果。例如:
const { Op } = require('sequelize');
const users = await User.findAll({
where: {
age: {
[Op.not]: 18,
}
}
});
上述代码将查询所有年龄不等于18岁的用户。
检查是否以给定的字符串结尾。例如:
const { Op } = require('sequelize');
const users = await User.findAll({
where: {
firstName: {
[Op.endsWith]: 'Doe',
}
}
});
上述代码将查询所有名字以Doe结尾的用户。
检查是否以给定的字符串开始。例如:
const { Op } = require('sequelize');
const users = await User.findAll({
where: {
firstName: {
[Op.startsWith]: 'Joh',
}
}
});
上述代码将查询所有名字以Joh开头的用户。
检查字符串是否包含给定的子字符串。例如:
const { Op } = require('sequelize');
const users = await User.findAll({
where: {
firstName: {
[Op.substring]: 'ohn',
}
}
});
上述代码将查询所有名字中包含ohn的用户。
检查数组是否包含给定的元素。例如:
const { Op } = require('sequelize');
const users = await User.findAll({
where: {
hobbies: {
[Op.contains]: ['football'],
}
}
});
上述代码将查询所有喜欢足球的用户。
检查数组是否有重叠。例如:
const { Op } = require('sequelize');
const users = await User.findAll({
where: {
hobbies: {
[Op.overlap]: ['swimming', 'jogging'],
}
}
});
上述代码将查询所有既喜欢游泳又喜欢慢跑的用户。
检查值是否在给定的集合中。例如:
const { Op } = require('sequelize');
const users = await User.findAll({
where: {
age: {
[Op.in]: [18, 20, 25],
}
}
});
上述代码将查询所有年龄为18、20或25岁的用户。
检查值是否不在给定的集合中。例如:
const { Op } = require('sequelize');
const users = await User.findAll({
where: {
age: {
[Op.notIn]: [18, 20, 25],
}
}
});
上述代码将查询所有年龄不为18、20或25岁的用户。
Sequelize运算符是非常强大和易于使用的,可以大大简化数据库查询。除了本文介绍的运算符外,Sequelize还提供了其他许多运算符,具体可参考官方文档。