1.安装

npm install --save sequelize
npm install --save mysql2

2.Sequelize 中 Model 的数据类型对应MySQL中的数据类型

Sequelize.STRING                      // VARCHAR(255)                  类型:字符串 最大值: 65535个字符
Sequelize.STRING(1234)                // VARCHAR(1234)                 类型:变长 最大值: 65535个字符
Sequelize.TEXT                        // TEXT                          类型:字符串 最大值:65535个字符
Sequelize.TEXT('tiny')                // TINYTEXT                      类型:字符串 最大值:255个字符

Sequelize.INTEGER                     // INTEGER                       类型:整型 最大值:范围(-2147483648~2147483647)
Sequelize.BIGINT                      // BIGINT                        类型:整型 最大值:范围(+-9.22*10的18次方)
Sequelize.BIGINT(11)                  // BIGINT(11)                    类型:整型 最大值:范围(+-9.22*10的18次方)

Sequelize.FLOAT                       // FLOAT                         类型:单精度浮点型  8位精度(4字节)
Sequelize.FLOAT(11)                   // FLOAT(11)                     类型:单精度浮点型 8位精度(4字节)
Sequelize.FLOAT(11, 12)               // FLOAT(11,12)                  类型:精度浮点型 8位精度(4字节) m总个数,d小数位


Sequelize.DOUBLE                      // DOUBLE                        类型:双精度浮点型 16位精度(8字节) 
Sequelize.DOUBLE(11)                  // DOUBLE(11)                    类型:双精度浮点型 16位精度(8字节) 
Sequelize.DOUBLE(11, 12)              // DOUBLE(11,12)                 类型:双精度浮点型 16位精度(8字节) m总个数,d小数位

Sequelize.DECIMAL                     // DECIMAL                       类型:定点数型
Sequelize.DECIMAL(10, 2)              // DECIMAL(10,2)                 类型:定点数型 参数m<65 是总个数,d<30且 d<m 是小数位

Sequelize.DATE                        // DATETIME                      类型:日期时间类型 范例:'2009-05-12 02:31:44'
Sequelize.DATE(6)                     // DATETIME(6)    
Sequelize.DATEONLY                    // DATE without time.
Sequelize.BOOLEAN                     // TINYINT(1)                    类型:整型 范围(-128~127)

Sequelize.ENUM('value 1', 'value 2')  // ENUM                          类型:枚举

Sequelize.BLOB                        // BLOB                          类型:二进制数据
Sequelize.BLOB('tiny')                // TINYBLOB                      类型:二进制数据  

3.打印结果
单条数据打印

console.log(res.toJSON());  
console.log(res.get({ plain: true }));  

列表打印

console.log(JSON.stringify(res, null, 4)); 

let res = await MyModel.findAll({ raw: true, nest:true })
console.log(res)

或者查询参数中传入raw: true然后可以直接用console.log(res)

4.过滤属性

Model.findAll({
  attributes: ['foo', 'bar']
})

5.条件过滤

$eq(等于)
$ne(不等于)
$gt(大于)
$gte(大于等于)
$lt(小于)
$lte(小于等于)
$between(在某个范围内)
$notBetween(不在某个范围内)
$in(在某个集合中)
$notIn(不在某个集合中)
$like(和某个模式匹配)
$notLike(和某个模式不匹配)

6.批量创建

await Foo.bulkCreate([
  { name: 'abc123' },
  { name: 'name too long' }
]);

参考链接:
https://www.cnblogs.com/suiyueshentou/p/7592505.html
https://blog.csdn.net/zjw0742/article/details/76861013
https://itbilu.com/nodejs/npm/V1PExztfb.html
https://sequelize.org/

作者 铁血 汉子 2019年11月29日
2024/12/26/12:51:57pm 2019/11/29/1:37:22
0 4091