Sequelize模組運算元據庫之預先載入

2021-10-11 01:19:02 字數 2491 閱讀 9841

在之前我們了解了 sequelize 模組的一部分內容,那麼這篇內容我們去了解一下 sequelize 的 剩餘的部分。

在查詢資料的時候我們使用了findall()方法,除了這種方式,還可以使用findonefindorcreatefindandcountall等方法。

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資料庫已經安...