MongoDB Advanced Schema Design Pattern - Outlier Pattern
用一句簡單的話說
將極大或極小、不常見的資料獨立存放,以避免破壞平均 document 大小。
場景
想像一個場景,大部分的書 review 都不多所以設計成一個 array 放這些 review,但暢銷書的 review 多到會變成 unbounded array,這時就是 outlier pattern 使用場景
處理某些 document 的 edge cases,其他應用場景像是:
- e-commerce 的熱門商品
- social app 上有數千萬追蹤的網紅
處理流程:
- 標記 outlier
- 處理 outlier
使用 updateMany() 標記 outlier
db.reviews.updateMany( |
處理 outlier
處理方式因應你的 app 需求而定,例如可以在下次有 write operation 的時候辨識如果是 outlier 就將多出來的 comment 放到其他地方
常與 bucket pattern 混用。