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会根据此对象产生查询语句的筛选条件

sequelize模型的更多相关文章

  1. Sequelize模型定义

    定义 定义模型与表之间的映射,使用 define 方法. Sequelize 会自动增加 createdAt 和 updated 属性,这样能知道一个实例的创建时间和最终修改时间.如果不想自动生成,可 ...

  2. sequelize-auto生成sequelize所有模型

    sequelize是node最受欢迎的orm库,普遍使用 Promise. 意味着所有异步调用可以使用 ES2017 async/await 语法. 快速入门地址:https://github.com ...

  3. sequelize 学习之路

    如果你觉得Sequelize的文档有点多.杂,不方便看,可以看看这篇. 在使用NodeJS来关系型操作数据库时,为了方便,通常都会选择一个合适的ORM(Object Relationship Mode ...

  4. Sequelize 和 MySQL 对照Sequelize 和 MySQL 对照

    安装 这篇文章主要使用MySQL.Sequelize.co来进行介绍.安装非常简单: $ npm install --save co $ npm install --save sequelize $ ...

  5. Node.js ORM框架Sequlize之表间关系

    Sequelize模型之间存在关联关系,这些关系代表了数据库中对应表之间的主/外键关系.基于模型关系可以实现关联表之间的连接查询.更新.删除等操作.本文将通过一个示例,介绍模型的定义,创建模型关联关系 ...

  6. Sequelize-nodejs-3-model definition

    Model definition模型定义 To define mappings between a model and a table, use the define method.定义模型和表之间的 ...

  7. Sequelize 关系模型简介

    Sequelize 关系模型简介 先介绍一下本文用到的术语: 源: 调用 sequelize 中关系方法的调用者 目标: 调用 sequelize 中关系方法中的参数 比如, User.hasOne( ...

  8. Sequelize 类 建立数据库连接 模型定义

    1:Sequelize 类 Sequelize是引用Sequelize模块获取的一个顶级对象,通过这个类可以获取模块内对其他对象的引用.比如utils.Transaction事务类.通过这个顶级对象创 ...

  9. Nodejs ORM框架Sequelize(模型,关联表,事务,循环,及常见问题)

    1.建立连接 const Sequelize = require('sequelize'); const sequelize = new Sequelize('database', 'username ...

随机推荐

  1. laravel中{{}}和{!! !!}的区别详解

    {{}}支持转义 一段html代码只是被当成普通的字符串输出 {!! !!} 不支持转义 一段html代码可以被正常的解析 public function html(){ $address=" ...

  2. tensorflow源码解析之common_runtime-direct_session

    目录 核心概念 direct_session direct_session.h direct_session.cc 1. 核心概念 读过之前文章的读者应该还记得,session是一个执行代理.我们把计 ...

  3. vue学习过程总结(04) - 菜鸟教程归纳

    1.组件 组件(component)是vue.js最强大的功能之一.组件可以扩展html元素,封装可重用的代码.组件系统让我们可以用独立可复用的小组件来构建大型应用,几乎任意类型的应用的界面都可以抽象 ...

  4. CVE-2010-2861(Adobe ColdFusion 文件读取漏洞)

    漏洞介绍 Adobe ColdFusion是美国Adobe公司的一款动态Web服务器产品,其运行的CFML(ColdFusion Markup Language)是针对Web应用的一种程序设计语言. ...

  5. 如何移植sqlite3到嵌入式平台

    本人也时常看其他人的blog,搜索资料的目的是尽快解决当前的问题,例如如何移植一个ssh,尽快要明白所需的东西,方能移植完成. 移植sqlite3的步骤如下: 1. 到官方网站下载指定的源码包:htt ...

  6. Elman network with additional notes

    // Author: John McCullock // Date: 10-15-05 // Description: Elman Network Example 1. //http://www.mn ...

  7. java字节流和字符流,以及java文件操作

    A.首先说字节流:1.字节流在操作的时候不会用到缓冲区(也就是内存)2.字节流可用于任何类型的对象,包括二进制对象3.字节流处理单元为1个字节,操作字节和字节数组.InputStream是所有字节输入 ...

  8. windows 访问 CentOS 的防火墙及其 网关开放

    1.防火墙开放端口 firewall-cmd --zone=public --add-port=8848/tcp --permanent firewall-cmd --list-ports 开放cen ...

  9. vue异步组件?

    为了简化,Vue 允许你以一个工厂函数的方式定义你的组件,这个工厂函数会异步解析你的组件定义.Vue 只有在这个组件需要被渲染的时候才会触发该工厂函数,且会把结果缓存起来供未来重渲染Vue.compo ...

  10. redis有哪些功能

    基于本机内存的缓存 为了解决调用API依然需要2秒的问题,经过排查,其主要原因在于使用SQL获取热点新闻的过程中消耗了将近2秒的时间,于是乎,我们又想到了一个简单粗暴的解决方案,即把SQL查询的结果直 ...