初識 MongoDB 數據庫

前言

Flask 基礎框架在之前的三篇文章中寫完了。想要學習 web 相關的同學可以自己回顧翻一下,相信看完了,你也可以寫出來一個簡單的小案例來炫耀一波!

說到 web 開發,就不得不提到一個東西,數據庫!之前在介紹實戰項目時候,我提到過本次項目需要用到的數據庫 - MongoDB。本篇來帶你如何從零安裝 MongoDB 數據庫。下一篇介紹 Python 操作數據庫。

數據庫歷史

開始之前,為了照顧一些非專業領域的朋友,先來介紹一下,什麼是數據庫?為什麼會誕生出數據庫的概念?以及為什麼數據庫下還要細分一些不同的領域數據庫。

1. 伴隨數據的發展歷史所帶來的載體

以下也是我自己查的資料(不一定準確,歡迎知道的讀者來挑錯!),雖然知道數據庫設計出來的目的是什麼,不過還是去檢索了下它的發展由來歷史。

數據庫誕生的發展大概經歷了三個重大時期。每一次都是數據爆發提升所帶來的系統改變。

第一個時期是 1880 年美國人口普查。為了表示記錄數據,發明了分揀機、製表機和記錄機,記錄完整的數據。打孔卡上的孔,表示數據。打空帶便是信息的載體。



第二個時期 - 文件系統。其本身被認為是一個與文件櫃極為相似的範例。這個時期我理解就是小學時候用到的文件夾,裡面可以按照不同文件進行分類。

在電腦系統中,文件系統我們已經接觸過了,其實就是對文件的進行操作管理的系統。比如你在 Windows 上創建 txt 文本之類的。



第三個時期在二十世紀六十年代,隨著計算機速度和功能的增長,計算機被用於製造和更廣泛的實驗室使用。從而誕生了數據庫以及數據庫管理系統(DBMS),到20世紀60年代中期,許多此類系統已投入商業使用。



2. 數據庫的設計目的

這裡我就不用官方定義來說了,簡單的舉個栗子用自己的觀點陳述一下。

早期我們使用文件來對數據進行記錄,比如我們常用的 excel ,word 等。Excel 相信大家都用過,它本身的設計基於行和列,由行和列組成一個“二維表”的結構,來對數據進行存儲。使用的過程中,我們可以用篩選等功能來處理數據。但面臨的問題是,當數據過於龐大,文件就會打不開了。甚至可能出現程序崩壞的情況。

那麼此時,就需要一個大數據容量的東西來存儲數據,所以數據庫設計最重要的本質就是存儲大量數據。同時,再此基礎上提供了對數據操作的簡易性,對數據的完整性,以及對數據的安全性等特性。

下面是從 Quora (類似知乎,不對,應該是知乎仿照它...)查到的一個問題,為什麼我們需要數據庫?英語好的同學可以看下,不翻譯了。



3. 關係型數據庫與非關係型數據庫

關係型數據庫:

SQL (Structured Query Language) 數據庫,指關係型數據庫。主要代表:SQL Server,Oracle,MySQL(開源),PostgreSQL(開源)。

現在市面上用的最多的關係型數據庫就是以上幾個代表,簡單的說,其實關係型數據庫原理類似 Excel ,由行和列組成一張“二維”關係的數據表。

使用 SQL 語句即可對數據庫進行操作,比如創建庫,創建表,查詢表數據等。。。SQL 語句就像下面這樣:

<code>select * from user; # 查找用戶表/<code>

查詢結果也類似這樣的展現形式:



非關係型數據庫:

NoSQL(Not Only SQL)泛指非關係型數據庫。主要代表:MongoDB,Redis,CouchDB。

有了 SQL 數據庫,為什麼還有 NoSQL 數據庫?

在當今互聯網時代,數據越來越龐大,關係數據庫運行的慢,處理大數據的大多數情況是 NoSQL 比較高效,但 NoSQL 並不能完全取代關係數據庫,有些複雜操作並不能處理。

NoSQL 數據庫種類繁多,但是一個共同的特點都是去掉關係數據庫的關係型特性。數據之間無關係,這樣就非常容易擴展。

舉個常見的例子,僅是個人猜測,我們日常用的微博(若有錯誤,還望指出),它處理每個明星與粉絲之間的關係,這麼種類繁多的屬性字段,如果用 NoSQL 遠比 SQL 要好很多,因為字段與字段之間沒有相關性。

說下為什麼本交通統計項目採用的是 MongoDB 呢?理由很簡單,因為高德地圖返回的數據類型是 JSON 格式,用 MongoDB 兼容性非常好,直接存入即可。

安裝 MongoDB

不同平臺的下載地址都是一樣的,搜索引擎搜索 MongoDB :





這下載入口做的不太明顯,我也是找了一小會兒,哈哈哈!~大家根據自己電腦系統下載不同版本即可。Package MSI就是windows的一鍵安裝,我習慣下 ZIP ,所以選到了 ZIP 進行下載,大概 200 MB+。 解壓後,進入 bin :




如果此時你直接雙擊打開,能看到的結果就是黑框一閃而過,然後....然後就沒啥了。。。因為你打開的方式不太對!



接下來:



手動在此目錄下,創建一個文件 mongo.config:



記事本或者什麼其他工具,打開編輯,配置下 Mongo 的數據存儲位置以及日誌存儲位置:

<code>dbpath=C:/Users/asus/Desktop/mongodb/dblogpath=C:/Users/asus/Desktop/mongodb/log/mongodb.log/<code>

這裡的路徑一定要是絕對路徑,改成自己的即可,同時在創建對應指定目錄,db 和 log:



最後一步,進入 bin ,然後 shift + 鼠標右鍵,在此處打開 shell 窗口,輸入:

<code>mongod.exe --config C:\\Users\\asus\\Desktop\\mongodb\\bin\\mongo.config --install --serviceName "MongoDB" --journal/<code>

這裡的 --config 參數後面的文件也必須是絕對路徑。



解釋下,上述代碼的意思是將 mongo 作為服務的形式配置在 windows 電腦上,便於我們啟動。按下 win + R 鍵,打開服務:




這個就是剛才我們配置的 mongodb 服務,右鍵啟動就好。啟動完畢,可以看下剛才 mongo 的 db 和 log 目錄下是不是生成了一些文件呢:




以上,mongodb 數據庫安裝完畢。

MongoDB 可視化工具

依然官網,下載可視化工具:



類似 mongodb ,點到 tool 處下載,然後讓你填一個信息,瞎寫就好,提交完就能下載了:



可視化工具,直接打開 exe 即可:



配置默認即可,沒改動過,localhost代表本機,port 27017 是 mongodb 的默認端口:





完工!

可視化工具操作 MongDB

專業人員不要覺得用可視化工具來操作顯得很 lowB ,實際上工具本來就是可以幫我們節省大量的時間。而每個視圖背後對應的本質還是命令代碼。

1. 創建數據庫



2. 填寫數據庫名稱,以及 Collection 名稱



3. 創建文檔




插入完成後,轉化為表來展示,看看是否和我們常見的 Excel 相似呢:



總結

對於 MongoDB 的具體內容,以及每個官方字段的含義,放在下一篇介紹了!本篇篇幅又超長了。。。

下篇文章,如何使用 Python 操作 MongoDB 數據庫(拖延了一篇。。。),敬請期待!

如果有什麼問題,歡迎小夥伴們留言探討!