MongoDB 概念
三個(gè)概念妥粟,需要分清;從字面意思跟關(guān)系型數(shù)據(jù)庫的庫表有所不同诚些,但本質(zhì)上還是一樣的莉掂,數(shù)據(jù)結(jié)構(gòu)不一樣
document 文檔
相當(dāng)于關(guān)系數(shù)據(jù)庫的一條記錄
collection 集合
多條記錄、多個(gè)文檔默垄,相當(dāng)于關(guān)系型數(shù)據(jù)庫的表
database
多個(gè)集合此虑,在邏輯上有所聯(lián)系,相當(dāng)于關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)庫了
Mongoose 概念
也有三個(gè)概念口锭,在MongoDB驅(qū)動(dòng)的基礎(chǔ)上朦前,繼續(xù)抽象、封裝的對(duì)象模型工具鹃操;能讓我們?cè)诖a層面和數(shù)據(jù)層面更容易使用韭寸、門檻比較低。
schema
看作Mongose 里面的一種 數(shù)據(jù)模式荆隘、數(shù)據(jù)定義恩伺,表的結(jié)構(gòu)、表的字段(字段類型椰拒、字段長度)晶渠;對(duì)表具體的定義, 對(duì)應(yīng) MongoDB 的某個(gè) collection燃观; 純粹定義不具備操作數(shù)據(jù)的能力
model
數(shù)據(jù)庫的相關(guān)操作褒脯,他是由 schema 發(fā)布生成對(duì)應(yīng)的模型,具有一些抽象屬性缆毁、行為一個(gè)數(shù)據(jù)庫的操作番川,具有操作某張表操作能力的函數(shù)集合,函數(shù)集合的操作對(duì)象就是整個(gè) collection(整張表)脊框,可以進(jìn)行 CRUD 相關(guān)操作
entity
entity 就是 model 所創(chuàng)建的數(shù)據(jù)實(shí)體颁督,他的操作也會(huì)影響到數(shù)據(jù)庫;簡單來講就是某條數(shù)據(jù)缚陷,這條數(shù)據(jù)的自身不是干巴巴的數(shù)據(jù)适篙,還集成了一些方法,改變自身箫爷。
總結(jié)MongoDB 和 Mongoose
- MongoDB 的 document嚷节、collection、database 可以對(duì)應(yīng)到 關(guān)系型數(shù)據(jù)庫的 row(行數(shù))虎锚、tabel(表)硫痰、db(數(shù)據(jù)庫)
- Mongoose 是對(duì) MongoDB 的抽象和封裝,針對(duì)數(shù)據(jù)本身還擴(kuò)展些能力的函數(shù)集合窜护;schema效斑、model、entity 對(duì)應(yīng)到 數(shù)據(jù)定義柱徙、數(shù)據(jù)的操作模型缓屠、針對(duì)到某條擁有自我修改的數(shù)據(jù)