【一个流行的支持超多数据库的ORM库】Sequelize 是一个流行的 Node.js ORM(对象关系映射)库,用于在 Node.js 中操作关系型数据库 。它支持多种数据库系统,如 PostgreSQL、MySQL、SQLite 和 MSSQL,并提供了简单易用的 API 来进行数据库的增删改查操作 。
文章插图
以下是 Sequelize 中常用的增删改查方法和参数的详细介绍:
1.创建模型(Model)在 Sequelize 中,你首先需要定义模型来表示数据库中的表 。模型通过 sequelize.define 方法进行创建,该方法接受两个参数:模型名称和模型属性 。模型属性定义了表中的列名、数据类型及其它选项 。
2.数据库连接使用 new Sequelize 构造函数创建一个 Sequelize 实例,传入数据库的连接信息(如数据库名、用户名、密码、主机等) 。
3.数据库同步使用 sequelize.sync() 方法将模型同步到数据库中 。它会根据模型定义自动创建或更新数据库表结构 。
4.查询数据(查询符合条件的记录)这些方法接受一个 options 参数,用于指定查询条件、排序、限制数量等 。常用的 options 参数包括:
- where:指定查询条件 。
- attributes:指定返回的字段 。
- order:指定排序规则 。
- limit 和 offset:用于分页查询 。
- Model.findAll(options):查询所有符合条件的记录 。
- Model.findOne(options):查询符合条件的第一条记录 。
- Model.findByPk(id, options):根据主键查询记录 。
- Model.findAndCountAll(options):查询符合条件的记录和总数 。
6.更新数据这些方法接受一个 options 参数,用于指定更新条件、返回结果中包含关联表的数据等 。
- instance.save(options):保存已有记录的更改到数据库 。
- Model.update(values, options):更新符合条件的记录 。
- instance.destroy(options):删除一条已有记录 。
- Model.destroy(options):删除符合条件的记录 。
首先,我们假设有一个名为User的模型,表示用户对象,并且已经定义和同步到数据库中 。
(1) 查询数据:
const User = require('./models/User');// 查询所有用户User.findAll().then((users) => {console.log(users);});// 查询符合条件的第一个用户User.findOne({ where: { id: 1 } }).then((user) => {console.log(user);});// 根据主键查询用户User.findByPk(1).then((user) => {console.log(user);});
(2) 创建数据:const User = require('./models/User');// 创建一条新用户记录User.create({name: 'John Doe',age: 30,emAIl: 'john@example.com'}).then((user) => {console.log(user);});
(3) 更新数据:const User = require('./models/User');// 查询某个用户User.findOne({ where: { id: 1 } }).then((user) => {if (user) {// 更新用户信息user.name = 'Updated Name';user.age = 25;user.save().then((updatedUser) => {console.log(updatedUser);});}});
(4) 删除数据:const User = require('./models/User');// 查询某个用户User.findOne({ where: { id: 1 } }).then((user) => {if (user) {// 删除用户user.destroy().then(() => {console.log('User deleted successfully');});}});
以上是一些常见的增删改查的示例使用方法 。请注意,这只是其中的一部分操作 , Sequelize 还提供了更多高级功能,如关联查询、事务处理等 。Sequelize 中没有直接的 whereIn 方法来删除符合一组条件的记录 。但是,你可以使用 destroy 方法结合 where 条件来实现类似的功能 。
以下是一个示例,演示如何使用 destroy 方法和 where 条件来删除符合条件的记录:
const User = require('./models/User');// 删除年龄在 [20, 25, 30] 范围内的用户User.destroy({where: {age: {[Sequelize.Op.in]: [20, 25, 30]}}}).then((numDeleted) => {console.log(`${numDeleted} records deleted successfully`);});
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 简易百科SEO之百度收录量持续上升而流量持续下降是什么原因?
- TikTok视频0播限流怎么解决?
- 孙卫东前妻回应来了:很愧疚,没想到他会流浪,对前夫关心不够
- 新闻发布会流程顺序 新闻发布会流程顺序方案
- 青骄第二课堂加分方法 青骄里面的第二课堂加分流程
- 一个想上位、一个想白嫖,于正与祝绪丹的瓜,揭开娱乐圈的遮羞布
- 娱乐圈最惨模范夫妻:结婚3次,流产2次,结婚20年后分居了
- 甲流会不会引起白肺 甲流会不会引起白肺病毒感染
- 什么是直男的具体表现 怎么判断一个男生是不是直男
- 甲流白肺的症状有哪些 甲流白肺的症状有哪些表现