MongoDB資料建模小案例 朋友圈評論內容管理

2021-09-23 18:00:16 字數 821 閱讀 2613

點讚列表,點讚使用者的暱稱,頭像;

資料查詢則相對簡單:

跟據上面的內容,先來乙個非常非常"樸素"的設計:

,

"100011": ,

"100012":

},"comment_list": [

"100013",

"100014"

],"comment_ref_obj": ,

"100014":

}}

可以看到,comment_ref_objpraise_ref_obj兩個字段,有非常重的關係型資料庫痕跡,猜測,這個系統之前應該是放在了普通的關係型資料庫上,或者設計者被關係型資料庫的影響較深。而在mongodb這種文件型資料庫裡,實際上是沒有必要這樣去設計,這種建模只造成了多於的資料冗餘。

根據這幾個問題,重新做了優化的設計建議。

,

]}

對比可以看到,整個結構要小了幾個數量級,並且可以發現url,usrname資訊都全部不見了。那這樣的需求應該如何去實現呢?

從業務抽象上來說,url,username這類資訊實際上是非常穩定的,不會發生特別大的頻繁變化。並且這兩類資訊實際上都應該是跟uid繫結的,每個uid含有指定的url,username。是最簡單的key,value模型。所以,這類資訊非常適合做一層快取加速讀取查詢。

mongodb的文件模型固然強大,但絕對不是等同於關係型資料庫的粗暴聚合,而是要考慮需求和業務,合理的設計。有些人在設計時,也會被文件模型誤導,三七二十一一股腦的把資訊塞到乙個文件中。反而最後會帶來各種使用問題。

MongoDB資料建模小案例 物聯網時序資料庫建模

注 本案例來自mongodb官方教程ppt,也是乙個非常典型的case,故此翻譯,並結合當前mongodb版本做了一些內容上的更新。本案例非常適合與iot場景的資料採集,結合mongodb的sharding能力,文件資料結構等優點,可以非常好的解決物聯網使用場景。案例背景是來自真實的業務,美國州際公...

vuex小案例 元件共用資料

將state中的資料做一些集中處理,用map遍歷陣列中每乙個資料做處理 將state作為引數傳入,可以直接使用遍歷等 getters return saleproducts payload作為引數被傳入使用的元件,items.price payload payload傳幾就減幾 mutations ...

把CRUD 案例改為MongoDB 資料庫版本

之前基於express寫的案例是檔案格式,現在連線mongodb 資料庫 對原案例進行修改。主要就是student.js 修改如下 ar mongoose require mongoose mongoose.connect mongodb localhost itcast var schema mo...