[Nodejs] Mongoose Virtual Properties
[Nodejs] Mongoose Virtual Properties
什麼是 Virtual Properties
它是 Mongoose 提供的功能之一,Model 可以在 Schema 定義虛擬屬性(Virtual Properties),它並不會被存入資料庫,但是我們可以使用和讀取,這樣做為了可以節省空間
優缺點
- 優點:節省資料庫空間
- 缺點:由於Virtual 沒有儲存在資料庫中,因此無法查詢
它的概念其實就是 Vue 裡的 computed 屬性
例如:lastName, firstName,最常看到的範例是 Vue2 computed 設定 lastName, firstName, fullName
如何使用
定義了 tourSchema,在 tourSchema 最後定義完後加上設定 toJSON: { virtuals: true }, toObject: { virtuals: true }
1 |
|
設定虛擬屬性
1 |
|
在以下程式碼,設定了 durationWeeks,根據 duration / 7 而得來,後面要接的是 callback function
注意:不可用箭頭Function來寫,傳回的值會是 null
❌:get.(() ⇒ { this.duration / 7 })
🆗:get.(function() { return this.duration / 7 })
1 |
|
完整程式碼
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!