一个流行的支持超多数据库的ORM库

【一个流行的支持超多数据库的ORM库】Sequelize 是一个流行的 Node.js ORM(对象关系映射)库,用于在 Node.js 中操作关系型数据库 。它支持多种数据库系统,如 PostgreSQL、MySQL、SQLite 和 MSSQL,并提供了简单易用的 API 来进行数据库的增删改查操作 。

一个流行的支持超多数据库的ORM库

文章插图
以下是 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):查询符合条件的记录和总数 。
5.创建数据使用 Model.create(values, options) 方法创建一条新记录 。values 参数是一个包含要插入的数据的对象 , options 参数可选 , 用于指定额外的选项,如返回结果中包含关联表的数据等 。
6.更新数据这些方法接受一个 options 参数,用于指定更新条件、返回结果中包含关联表的数据等 。
  • instance.save(options):保存已有记录的更改到数据库 。
  • Model.update(values, options):更新符合条件的记录 。
7.删除数据这些方法也接受一个 options 参数 , 用于指定删除条件 。
  • instance.destroy(options):删除一条已有记录 。
  • Model.destroy(options):删除符合条件的记录 。
以上是 Sequelize 中常用的增删改查方法和参数的简要介绍 。在实际使用时,你可以根据具体需求选择适合的方法和参数来操作数据库 。
首先,我们假设有一个名为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`);});


推荐阅读