(8)被迫吃芒果的前端工程師 - MongoDB - ODM

前言

接下來先來聊一下 ODM 與 ORM 是什麼,畢竟我們將會使用 MongoDB 中的 ODM,但是在使用之前還是先了解一下這兩者差異。

ODM 與 ORM

首先 MongoDB 中最知名的 ODM 是 Mongoose,全世界開發來講大概超過八成都是使用這一套。

那麼什麼是 ODM 呢?ODM 全名是「Object-Document Mapping」,中文名稱是「物件文件對映」,而我們可以使用 ODM 也就是 Mongoose 所提供的一些方法、API 來操作資料庫,也就是 MongoDB。

ORM 呢?ORM 全名是「Object Relational Mapping」,中文名稱是「物件關聯對應」,以 MySQL 中我嘗試使用過的是 Sequelize,先前也是使用 Sequelize 來撰寫文章

而 ODM 與 ORM 簡單來講就是擔任與資料庫溝通的橋樑,進而避免我們直接針對資料庫進行寫入、更新、讀取與刪除等動作。

以 JavaScript 來講就會像以下圖

溝通橋樑

而這一塊如果套用 MVC 來看的話,你會發現概念很像。

那麼使用 ODM/ORM 有什麼好處呢?

基本上不論是 Sequelize 或是 Mongoose 都會被封裝資料庫的操作 API,因此並不用再去撰寫常見的 SQL 或者是 MongoDB 操作語法,而這邊你也不用再擔心自己會寫出一些效能不好的語法等好處,除此之外 ODM/ORM 也會針對基本的 SQL Injection (資料庫注入) 有基本的防範。

那麼接下來章節我們將會開始實作一些東西,因此這邊只是簡單認識什麼是 ODM 在幹嘛,而後面將會使用 Mongoose,因此建議使用可以使用 express-generator 先產生一個 Express 應用程式,然後並安裝 Mongoose

1
npm install mongoose --save

如果準備好的話,就可以準備往下了。