三分鐘 mongodb 開發快速上手

小熊昨天晚上做了一個非常真實的噩夢,有讀者朋友催我”怎麼又沒有發文!讓我們等的好辛苦“,今天一睜開眼眼看後臺留言,特麼,居然是真的!

bilibili直播申請都通過了!但是別想讓我吃粑粑!

這兩天我雖然沒有更新文章,主要因爲小熊最近的工作密度比較大,有時候爲了能夠偷懶花一些時間主動寫一些腳本或者代碼,減少很多人力的操作,這種事情沒有人要求小熊,但是我還是會主動去,長痛不如短痛就是這個道理。

工作之餘我可沒有閒着,今天要和大家分享的是來自一位讀者的要求,他們小組馬上要用mongodb了,但是以前從來沒有接觸過,小熊就滿足你的需求。

有道是,無巧不成書,我們也用到了mongdb,不過對於小熊個人來說,對mongodb的接觸僅限於維護的時候看看錶結構,更新幾行記錄什麼的,正好逮到這個契機下決心好好總結一下。

這是一篇科普文。

爲什麼用(有在哪,有什麼好處) ?

我們用 mongodb 比較感興趣的是爲什麼要用他?他有什麼好處?什麼時候該用?具體怎麼用?

mongo 相對於傳動的關係型數據庫,例如MySQL來說,他對每一次插入的字段格式沒有要求,字段可以隨意變動。

像這張圖,各種類型的字段都存在裏面。看上去和Mysql長的很像,但是他是去sql的一種數據庫。就是我們常說的nosql

MongoDB 的優點/缺點

MongoDB 的優勢主要有 3 個。

  • 結構靈活,表結構更改比較自由,不用因爲增減字段每次 alter 的時候付出代價,適合業務快速迭代,而且 json 原生和大多數的語言有天然的契合。還支持數組,嵌套文檔等數據類型

  • 自帶高可用,自動主從切換(副本集)

  • 自帶水平分片(分片),內置了路由,配置管理。應用只要連接路由,對應用來說是透明的。

也具備所有NoSQL的其他優點。

  • 他可以併發插入上萬條文檔
  • 高可擴展性,在負載高的情況下,只需要添加更多的節點,就可以保證服務器的性能。
  • 分佈式計算
  • 低成本,輕量化部署非常簡單
  • 沒有複雜的關係

缺點:

  • 沒有標準化
  • 程序不直觀

主要記得靈活、好用、速度快、容器擴展運維方便就好了,不像MySQL那樣,對集羣同步要求那麼高。

基本概念

mongodb 中基本的概念是文檔、集合、數據庫,讓我由外而內和大家聊聊。

MySQL對比來看就是

  • 數據庫——>數據庫
  • 表————>集合
  • 行————>文檔
  • 列 ————>字段

數據庫(db)?

MySQL一樣,一個 mongodb 中可以建立多個數據庫。

展示所有的數據庫

> show dbs
local  0.078GB
test   0.078GB

運行use命令,可以連接到一個指定的數據庫(沒有則創建)。

> use coding3min
switched to db coding3min

執行 db 命令可以顯示當前數據庫對象或集合。

> db
coding3min

文檔(Document)?

說集合之前,要先說說集合裏所有的行記錄,也就是文檔,類似MySQL表中一行一行的記錄。

文檔是個什麼東西呢?他長的就像 JSON 對象。

數據結構由鍵值 (key=>value) 對組成。字段值可以包含其他文檔,數組及文檔數組,簡直和json一毛一樣。

點擊放大查看圖片

集合(collection)?

集合類似MySQL中的表,就是文檔的集合。

db.createCollection("coding3min", {happy:true, age:18})

查看當然庫有哪些集合

> show collections
coding3min

其實你不用刻意創建集合。在插入文檔的時候,會自動創建。

這就是Mongo的簡單入門啦,我們先講應用,以後有機會再聊聊業務怎麼設計,怎麼真正的用起來,系統的講講有哪些比較重要的點。下次再見啦。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章