首页 > 技术文章 > sequelize模型

renxiao1218 2018-08-24 18:22 原文

model表示数据库中的表,有时它也会被称为"模型"或“工厂”。Model不能通过构造函数创建,只能通过sequlize.define方法来定义或通过sequlize.import导入。通过define定义一个model,就相当于定义了一种模型与数据表之间 的映射关系,通过模型可以实现对表记录的增删改查等操作。

Model的API

1. removeAttribute() 移除属性

2. sync() 同步模型到数据库

3. drop() 删除数据库中的表

4. schema() 制定schema

5. getTableName() 获取表名

6. addScope() 添加限制范围

7. scope() 应用限制范围

8. findAll() 查询多条数据

9. findById() 通过id查询单条数据

10. findOne() 查询单条数据

11. aggregate() 聚合查询

12. count() 统计查询结果数

13. findAndCount() 分页查询

14. max() 查询最大值

15. min() 查询最小值

16. sum() 求和

17. build() 创建新实例

18. create() 创建保存新实例

19. findOrInitialize() 查找或初始化

20. findOrCreate() 查找或创建

21. describe() 查询表信息

定义描述

1. 定义模型Model和表之间的映射关系使用define方法。 定义时sequelize会自动为其添加createdAt和updatedAt两个属性(相当于表中的字段),这样 你就可以知道数据什么时候插入了数据库和什么时候进行了更新。

2. 设置allowNull选项为false后,会为列添加NOT NULL非空限制

模型的使用

1. Data retrueval / Finders 数据索引/查找

查找方法是为了从数据库中查询数据,这些方法不是返回原始数据对象,而是返回模型实例。因会其返回的模型实例,

 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

model是一种与数据库中表与数据库中表关系的描述对象,它通过sequlize.define方法定义或通过sequlize.import导入创建实例的对象。通过Model进行数据查询时,我们可以实现类似在数据库中直接使用SQL语句的查询、排序、分组、别名、链接查询等

1. attribute 属性与查询字段

查询时,如果只需要查询模型的部分属性,可以通过在查询选项中制定attributes实现,它是一个数组参数,在数组中指定要查询的属性即可,这些要查询的属性就是要在数据库查询的字段。

当需要查询所有字段并对某一字段使用聚合查询时,而只需要以对象的形式传入Attributes并添加include子属性即可

全部查询时,可以通过exclude子属性来排除不需要查询的字段(不需要查询的字段)

2. where  指定筛选条件

在模型的操作中,可以指定一个where选项以制定筛选条件,where是一个包含属性/值对对象,sequlize会根据此对象产生查询语句的筛选条件

 

推荐阅读