簡介
mongodb是一種介於關係型數據庫與非關係型數據庫之間的東西,簡單來說就是非關係型數據庫中最像關係型數據庫(這裏就不展開解釋關係型數據庫和非關係型數據庫的差別啦)。主要用來存儲一些難以結構化或者無需結構化的數據,比如文檔啊,音頻啊之類的東西。作爲主流(emmmm,其實我也不知道算不算主流)數據庫的一種,該有的東西基本上都是有的。像最基本的crud,稍微複雜一點的索引,在集羣部署上面的分片,副本集。。。。。。我覺得作爲基層開發,能夠熟練掌握crud已經夠夠的了,畢竟還有那麼多基礎等着我們去學,知識總會一樣一樣的學完的~
基本概念
我相信現在在學習mongodb的兄弟們,一定是已經掌握了至少一種關係型數據庫這個磨人的小妖精。不可能連sql都不學就直接來學nosql的吧。所以這裏呢我就用一些關係型數據庫的概念來類比mongodb裏的概念,這樣子方便理解也方便記憶。
sql | mongodb | |
---|---|---|
數據庫 | 數據庫(database) | |
表 | 集合(collection) | |
表中的一行數據 | 文檔(document) | |
表的字段 | 鍵(key) | |
字段的值 | 值(value) | |
索引 | 索引(index) | |
外鍵的約束 | 沒有這種東西 | |
表之間的連接 | 外鍵都沒有連接個錘子 |
由上表,我們可以看到至少mongodb裏面沒有那麼變態的連接查詢(左連接啊,右連接啊,全連接啊都去死吧)。然後我們最最基本的數據單位就是文檔。從sql的概念推導可知,一個mongodb數據庫可以有很多個集合,一個集合可以有很多個文檔,一個文檔就是一條完整的數據。
長什麼樣子
在mongodb中,一個文檔就是一個BSON(千萬記住不是JSON,BSON是基於JSON開發的數據格式,長得跟JSON幾乎一摸一樣,甚至直接可以當做JSON使用,但是比JSON多了一些特性)。對於一個文檔的crud,其實就是對於BSON的操作,強大的一匹!!。
這個是比較簡單的一份文檔的示例。
_id:類似於是主鍵,是mongodb自動幫我們生成的,當然我們也可以自己指定;
name:是這份文檔的一個屬性,它的值是一個數組[1,2,3,4]。
下一章我們來講mongodb的linux安裝(windows就多撈哦~ ) 敬請期待~