在之前我們了解了 sequelize 模組的一部分內容,那麼這篇內容我們去了解一下 sequelize 的 剩餘的部分。
在查詢資料的時候我們使用了findall()
方法,除了這種方式,還可以使用findone
、findorcreate
和findandcountall
等方法。
findone——查詢單項
這個方法只返回查詢到的資料的第一條,使用方法和findall
一樣。
findorcreate——查詢並建立
findorcreate 可用於檢測乙個不確定是否存在的元素,如果存在則返回記錄,不存在時會使用提供的預設值新建記錄。
usermodel.
findorcreate(,
defaults:
})
findandcountall——分頁查詢
處理程式成功將始終接收具有兩個屬性的物件:
const
=await project.
findandcountall(}
, offset:10,
limit:2}
);console.
log(count)
;//查詢到的行數
console.
log(rows)
;//具體的資料
什麼是驗證,在建立模型的時候,我們可以使用模型驗證器,可以為模型的每個屬性指定 格式/內容/繼承 驗證,也可以使用來手動驗證例項。
sequelize.
define
('foo',}
isgreaterthanotherfield
(value)}}
}});
什麼是約束,約束是在 sql 級別定義的規則,比較常見的約束有主鍵約束、外簡約束、唯一約束等,這些約束基本在建立模型的時候都有提到過。
預先載入聽起來是乙個很高大上的名稱,但是其作用就是一次查詢多個模型,也可以叫多表查詢。
先建立三個模型,然後建立關聯
const user = sequelize.
define
('user',,
);const task = sequelize.
define
('task',,
);const tool = sequelize.
define
('tool',,
);user.
hasmany
(task)
;//給 task表新增 userid 外來鍵
task.
belongsto
(user)
;//給 task表新增 userid 外來鍵
user.
hasmany
(tool,);
//給tool 新增 userid 外來鍵
const users =
await user.
findall()
;console.
log(
json
.stringify
(users,
null,2
));//select * from user
獲取別名關聯
const users =
await user.
findall(}
);console.
log(
json
.stringify
(users,
null,2
));//select `user`.`id`,`user`.`name`, `instruments`.`id` as`instruments.id`,`instruments`.`name` as`instruments.name`,
//`instruments`.`size` as `instruments.size`,`instruments`.`userid` as `instruments.userid`
//from `users` as `user`inner join `tools` as `instruments` on
過濾關聯模型的資料
user.
findall(}
}});
多表相連
foo.
findall(,
, qux // 的簡寫語法在這裡也適用]}
)
到處為止,sequelize 模組的內容就講解完了,但是 sequelize 模組還可以很多部分我並沒有涉及到,大家可以通過官方api去自行了解 使用Sequelize模組運算元據庫之模型的關聯
在之前我們了解了模型的建立,模型是代表資料庫中表的抽象,而在資料庫庫的表中,我們可以給表設定關聯,所以我們也可以通過模型完成這些關聯的建立。在資料庫中標準關聯關係有 一對 一 一對多 多對多。而sequelize模組都可以實現,sequelize模組提供了四種關聯型別,將他們組合在一起可以建立關聯 ...
pymysql模組運算元據庫
pymysql模組是python運算元據庫的乙個模組 connect 建立資料庫鏈結,引數是連線資料庫需要的連線引數 使用方式 模組名稱.connect 引數 host 資料庫ip port 資料庫埠 user 資料庫使用者名稱 passwd 資料庫密碼 db 資料庫名稱 charset 資料庫編碼...
DBI模組運算元據庫示例
perl中乙個很重要的模組就是dbi模組 perl database inte ce,資料庫介面 dbi模組為很多不同的資料庫提供了乙個統一的介面。perl通過此介面可以很容易對資料庫進行操作。結構圖如下 下面說下perl如何對mysql資料庫進行操作。1.首先要確保perl及mysql資料庫已經安...