4/15 每日任務連結


觀念解說 – Mongoose、schema

Mongoose

Mongoose 是 MongoDB 的 ODM(Object Data Modeling) 套件,Mongoose 套件會藉由 MongoDB driver 操作資料庫的資料

使用 ODM 通常可以降低開發和維護成本,因 ODM 會使用 JavaScript 的物件反映出資料庫中的資料,相對於使用資料庫原生的查詢語言 (SQL),用 ODM 的方式操作資料庫會更好上手

  • 在專案中安裝 Mongoose
  • 引入 mongoose 套件並連線 MongoDB 資料庫

Schema

安裝 Mongoose 並連線至資料庫後,接著可以開始建立 Schema(資料庫綱要),定義需要哪些資料、型別、是否顯示、預設值…等等

例如:文件中列出 Blog 的 Schema

當接收到資料,就可以依此 Schema 把關資料是否帶入正確

Schema 中會有需要帶入的資料屬性,title、author 等等,並會針對此資料加入相關設定,例如:型別、必填、預設…等等

type

若只有設定型別可以使用簡寫 title: String

若 title 是一個物件,可以針對裡面的屬性設定型別

若 title 為一個陣列,也可指定陣列中資料型別

required

若此資料需為必填項目,可以設定 required,並且可客製化錯誤訊息,格式如下:

default

若有資料未填寫,也可以設定此資料的預設值

通常 required 與 default 不會同時使用

select

若有資料欄位希望可以被保護,不顯示出來,可以加入 select 設定
例如:若有涉及使用者相關個資 password、email …等等,都會建議加入 select: false 不將資料回傳給前端

enum

若此資料設定型別為 String 或 Number,可以設定 enum 指定需為哪些值
以字串為例,若 author 需為 Amy、Bob 或 Cody 其中之一,可以設定為以下:

參考資源

Mongoose v6.2.10: Schemas
Mongoose v6.2.10: SchemaTypes
Mongoose NPM 教學(可看到 Mongoose 新增 Model 流程)(章節影片)


解題

題目(將答案寫在 CodePen 並提交至回報區)

請參考以下需求,設計手搖飲的 Schema

解答與完整程式碼