Sequelize
INSERT 查询
Model.create()
SELECT 查询
读取整个表的数据
Model.findAll()
attributes参数指定查询的字段名称
Model.findAll({ attributes: ['username', 'password'] });
可以使用嵌套数组来重命名属性
Model.findAll({ attributes: ['username', ['name', 'realname'], 'password'] });
WHERE 查询
根据某个字段查询,可以增加多个字段
Model.findAll({ where: { id: 1 } });
默认情况下 Sequelize 假定进行相等比较,可以指定
const { Op } = require("sequelize"); Model.findAll({ where: { authorId: { [Op.eq]: 2 } } }); Model.findAll({ where: { [Op.and]: [ { authorId: 12 }, { authorId: 13 } ] } }); Model.findAll({ where: { [Op.or]: [ { authorId: 12 }, { authorId: 13 } ] } });
UPDATE 查询
将所有没有姓氏的人更改为 "Doe"
await User.update({ lastName: "Doe" }, { where: { lastName: null } });
DELETE 查询
删除所有名为 "Jane" 的人
await User.destroy({ where: { firstName: "Jane" } });
要销毁所有内容,可以使用 TRUNCATE SQL
// 截断表格 await User.destroy({ truncate: true });
限制和分页
使用 limit 和 offset 参数可以进行 限制/分页:
// 提取10个实例/行 Project.findAll({ limit: 10 }); // 跳过8个实例/行 Project.findAll({ offset: 8 }); // 跳过5个实例,然后获取5个实例 Project.findAll({ offset: 5, limit: 5 });