MongoDB Developer Day 筆記
2024-07-19
/報名參加了MongoDB Developer Day,實作了data modeling、aggregater及瞭解MongoDB新功能。
Developer Day
一早來到豪華的華南銀行國際會議中心,上午場主要介紹 mongoDB 與傳統 RDB 的不同以及 Data modeling 的過程,蠻有收穫的
相較於 Relational database 必須正規化、每個欄位都必須存在,mongoDB 在資料結構會比較自由,可以將關聯資料 embadded 在 document 裡,根據系統需求設計出高效能的資料結構
在 mongoDB 資料設計階段很注重使用案例分析,根據資料量及請求的多寡來靈活的設計資料結構,可以節省很多外部開銷,講者提出 data modeling 的流程供我們使用:
Step 1. Entities
在這個步驟可以根據需求將所有想到的 entity 及內部的 properties 列出來,請注意,在此步驟還不需要思考合併
Step 2. Workloads
在此階段思考使用者的操作情境及資料量,根據各操作列出頻率為多少
Step 3. Relationships
將前面列出的 entities 之間關連起來,並依照 workload 來判斷是否要合併 embed 資料
Step 4. Patterns
mongodb 官方很好心地整理出一些常用的 data modeling pattern,可以參考看看是否符合自己的使用案例並套用 https://www.mongodb.com/blog/post/building-with-patterns-a-summary
我們實作的主題是圖書管理系統,講者在每個階段都會留給我們時間思考、寫出我們的想法,再提供"參考答案"供我們參考,並讓在場的開發者提出問題討論,我覺得這是很好的練習,透過實際的案例,參與 data modeling 的過程
下午則是在介紹 mongoDB aggregate 的功能,講者簡單帶過一些常用的方法,就放時間給我們練習了,因為平常就有在使用 aggregate,所以比較無感
再來比較偏向 promote,開始介紹他們的 Atlas text search 及最近很流行的 vector 資料庫 search 功能,這部分就必須要在他們線上託管資料庫(Atlas)使用,因為公司應用都是在客戶端內網,所以比較不能實際應用在我們的專案中,但是原本就有在使用 Atlas 的企業,這些搜尋功能可以節省很多開發時間。
結論
這次的 MongoDB Developer Day 整體來講體驗蠻好的,感覺 MongoDB 官方主辦這場主要目標是要 promote 他們的 Atlas 新功能,但是還是很認真介紹 mongoDB 的核心功能,尤其是在 data modeling 的實作過程,在軟硬體方面,也有提供午餐、下午茶,最後還有送一件衣服,收穫滿滿。