Sequelize 資料寫入
¶Sequelize 資料寫入
¶Create
Module.build(options: Object)
回傳一個 instance
欄位放預設值 + 產生 instance
1 | // define the model |
Instance.save(options: Object)
回傳 Promise
儲存至 table
1 | // you can also build, save and access the object with chaining: |
Model.create(options: Object)
回傳 Promise
新增一筆資料至 table
build
+ save
= create
1 | Task.create({ title: 'foo', description: 'bar', deadline: new Date() }).then(function(user) { |
¶Update
1 | // way 1 |
¶Delete
Model.destroy(options: Object)
回傳 Promise
1 | Task.create({ title: 'a task' }).then(function(task) { |
在 Model.define()
裡設定 paranoid: true
時,執行 instance.destroy()
則會執行「寫入刪除時間」,執行 instance.destroy({force: true})
,就會真的刪掉這筆資料,從資料庫蒸發
¶批次處理
一次多筆 create/update/delete
¶大量新增
create: Model.bulkCreate([{}])
回傳值不要使用
1 | models.member.bulkCreate([{ name: 'John Doe', age: 20}, |
¶大量修改,加 WHERE
update: Model.update(update: Object, where: Object)
回傳 符合條件被修改的資料總數
1 | models.member.update( |
¶大量刪除(,加 WHERE)
delete: Model.destory()
1 | models.project.destroy({ |
options.truncate (optional)
Type: Boolean
default: false
description: 如果設定 true,支援TRUNCATE
的 SQL 就會使用TRUNCATE
(快) 而不是DELETE FROM
(慢)
實際使用的狀況: 刪除資料表裡所有資料,忽略 where,再加入的資料 id 重數
¶Value of an instance
instance 的樣貌 (類似 JSON 的樣子)
john.get({ |
instance.reload()
值同步: table → model
遞增
instance.increment('fieldName')
instance.increment('fieldName', {by: 2})
instance.increment(['fieldName1', 'fieldName2'])
instance.increment({ 'fieldName1': 2, 'fieldName2': 3 })
遞減
instance.decrement()
用法同上