三分鐘 mongodb 開發(fā)快速上手
三分鐘 mongodb 開發(fā)快速上手
小熊昨天晚上做了一個(gè)非常真實(shí)的噩夢,有讀者朋友催我”怎么又沒有發(fā)文!讓我們等的好辛苦“,今天一睜開眼眼看后臺留言,特么,居然是真的!

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

這兩天我雖然沒有更新文章,主要因?yàn)樾⌒茏罱墓ぷ髅芏缺容^大,有時(shí)候?yàn)榱四軌?code style="font-size: 14px;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px;color: rgb(30, 107, 184);background-color: rgba(27, 31, 35, 0.05);font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;">偷懶花一些時(shí)間主動寫一些腳本或者代碼,減少很多人力的操作,這種事情沒有人要求小熊,但是我還是會主動去,長痛不如短痛就是這個(gè)道理。
工作之余我可沒有閑著,今天要和大家分享的是來自一位讀者的要求,他們小組馬上要用mongodb了,但是以前從來沒有接觸過,小熊就滿足你的需求。

有道是,無巧不成書,我們也用到了mongdb,不過對于小熊個(gè)人來說,對mongodb的接觸僅限于維護(hù)的時(shí)候看看表結(jié)構(gòu),更新幾行記錄什么的,正好逮到這個(gè)契機(jī)下決心好好總結(jié)一下。
這是一篇科普文。
為什么用(有在哪,有什么好處) ?
我們用 mongodb 比較感興趣的是為什么要用他?他有什么好處?什么時(shí)候該用?具體怎么用?

mongo 相對于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,例如MySQL來說,他對每一次插入的字段格式?jīng)]有要求,字段可以隨意變動。

像這張圖,各種類型的字段都存在里面。看上去和Mysql長的很像,但是他是去sql的一種數(shù)據(jù)庫。就是我們常說的nosql
MongoDB 的優(yōu)點(diǎn)/缺點(diǎn)
MongoDB 的優(yōu)勢主要有 3 個(gè)。
結(jié)構(gòu)靈活,表結(jié)構(gòu)更改比較自由,不用因?yàn)樵鰷p字段每次
alter的時(shí)候付出代價(jià),適合業(yè)務(wù)快速迭代,而且json原生和大多數(shù)的語言有天然的契合。還支持?jǐn)?shù)組,嵌套文檔等數(shù)據(jù)類型自帶高可用,自動主從切換(副本集)
自帶水平分片(分片),內(nèi)置了路由,配置管理。應(yīng)用只要連接路由,對應(yīng)用來說是透明的。
也具備所有NoSQL的其他優(yōu)點(diǎn)。
他可以并發(fā)插入上萬條文檔 高可擴(kuò)展性,在負(fù)載高的情況下,只需要添加更多的節(jié)點(diǎn),就可以保證服務(wù)器的性能。 分布式計(jì)算 低成本,輕量化部署非常簡單 沒有復(fù)雜的關(guān)系
缺點(diǎn):
沒有標(biāo)準(zhǔn)化 程序不直觀
主要記得靈活、好用、速度快、容器擴(kuò)展運(yùn)維方便就好了,不像MySQL那樣,對集群同步要求那么高。
基本概念
mongodb 中基本的概念是文檔、集合、數(shù)據(jù)庫,讓我由外而內(nèi)和大家聊聊。
和MySQL對比來看就是
數(shù)據(jù)庫——>數(shù)據(jù)庫 表————>集合 行————>文檔 列 ————>字段
數(shù)據(jù)庫(db)?
和MySQL一樣,一個(gè) mongodb 中可以建立多個(gè)數(shù)據(jù)庫。
展示所有的數(shù)據(jù)庫
>?show?dbs
local??0.078GB
test???0.078GB
運(yùn)行use命令,可以連接到一個(gè)指定的數(shù)據(jù)庫(沒有則創(chuàng)建)。
>?use?coding3min
switched?to?db?coding3min
執(zhí)行 db 命令可以顯示當(dāng)前數(shù)據(jù)庫對象或集合。
>?db
coding3min
文檔(Document)?
說集合之前,要先說說集合里所有的行記錄,也就是文檔,類似MySQL表中一行一行的記錄。
文檔是個(gè)什么東西呢?他長的就像 JSON 對象。

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

集合(collection)?
集合類似MySQL中的表,就是文檔的集合。
db.createCollection("coding3min",?{happy:true,?age:18})
查看當(dāng)然庫有哪些集合
>?show?collections
coding3min
其實(shí)你不用刻意創(chuàng)建集合。在插入文檔的時(shí)候,會自動創(chuàng)建。
這就是Mongo的簡單入門啦,我們先講應(yīng)用,以后有機(jī)會再聊聊業(yè)務(wù)怎么設(shè)計(jì),怎么真正的用起來,系統(tǒng)的講講有哪些比較重要的點(diǎn)。下次再見啦。
