1. 程式人生 > >MongoDB入門教程(一)

MongoDB入門教程(一)

MongoDB簡介

MongDB是一個高效能,開源,無模式的文件型NosQL資料庫。

主要功能特性:

1.檔案儲存格式BSON(一種json的擴充套件)
2.模式自由
資料格式不受限了表的結構
3.支援動態查詢
4.支援完全索引
5.支援複製(其主從複製)和故障恢復
6.使用高效的二進位制資料儲存,包括大型物件
7.自動處理碎片,以支援雲端計算層次的擴充套件。
8.支援Java、Ruby、Python、C++、PHP等多種語言
9.內部支援Javascript

MongoDB的優勢

1.查詢速度快
2.高併發。可以達到2萬個併發。
3.高容量。支援10TB意思的資料量
MongoDB使用場景
1.網站資料
2.快取
3.大尺寸、低價值的資料
4.高伸縮的場景
5.用於物件以及Json資料儲存

MongoDB限制

1.在32位作業系統上,不支援大於2.5G的資料
2.單個檔案大小限制16M
3.高度事務的系統
4.傳統商業智慧應用

MongoDB與其他資料庫區別

這裡寫圖片描述

MongoDB安裝

在這裡,主要講解的是win下安裝,關於Linux下安裝,隨後會新增上。
下載網址:官方網站(https://www.mongodb.org/downloads/#production
在這裡使用的是win32
這裡寫圖片描述
筆者下載老長時間才下完,估計是個人網速問題,
這裡寫圖片描述

這裡寫圖片描述
這裡寫圖片描述
安裝好之後,安裝目錄下,發現有如下目錄
這裡寫圖片描述

配置path路徑[可選]

配置path路徑目的便於,直接可以再命令提示符輸入mongoDB命令,不需要每次在切換到mongoDB的bin目錄。在[我的電腦]右鍵,選擇[屬性]=>[高階系統設定]=>[高階]=>[環境變數設定]=>系統變數裡面的[path]修改,新增mongoDB的bin目錄,我新增的目錄是’C:\Program Files\MongoDB\Server\3.2\bin’
操作步驟截圖如下:
這裡寫圖片描述

啟動MongDB服務端

設定MongDB執行環境

官方原話如下:
Set up the MongoDB environment
1.MongoDB requires a data directory to store all data. MongoDB’s default data directory path is \data\db. Create this folder using the following commands from a Command Prompt:
md \data\db
mongoDB需要指定一個目錄來儲存資料。在win下在命令提示中,你可以使用md命令建立目錄。在此,我將建立一個data目錄和log目錄,分別用於存放資料和日誌。吐槽一下,感覺win下建立目錄確實沒有linux下方便。
這裡寫圖片描述


此時該目錄下建立目錄如下
這裡寫圖片描述

啟動mongoDB(針對服務端)

官方原話如下:
To start MongoDB, run mongod.exe. For example, from the Command Prompt:
C:\mongodb\bin\mongod.exe
This starts the main MongoDB database process. The waiting for connections message in the console output indicates that the mongod.exe process is running successfully.
就是我們通過mongod.exe來啟動mongoDB,啟動了MongoDB主資料程序,如果出現等待連線的訊息,則暗示著mongod.exe程序正在成功執行著。
好了,現在我們開始啟動了。
啟動命令如下:
mongod.exe --dbpath="C:\Program Files\MongoDB\Server\data" --logpath="C:\Program Files\MongoDB\Server\log\mongodb.log" --port=27017
如果沒有配置mongoDB的path目錄,需要先切換到mongoDB的bin目錄下或是使用C:\Program Files\MongoDB\Server\3.2\bin\mongod.exe去執行。
解析:dbpath指定資料存放目錄,可自行指定
logpath指定日誌路徑,可以自行指定
port指定埠號,預設的是27017

此時既然爆出如下錯誤
這裡寫圖片描述
也就是說32位系統預設情況下沒有開啟日誌記錄功能,請使用–journal開啟。
但是當我進入C:\Program Files\MongoDB\Server\log目錄下時候,發現有日誌,其內容如下:

016-04-28T21:42:47.003+0800 I CONTROL  [main] Hotfix KB2731284 or later update is not installed, will zero-out data files
2016-04-28T21:42:47.071+0800 I CONTROL  [initandlisten] MongoDB starting : pid=17916 port=27017 dbpath=C:\Program Files\MongoDB\Server\data 32-bit host=YEGZT8JOIIU2LKY
2016-04-28T21:42:47.072+0800 I CONTROL  [initandlisten] targetMinOS: Windows Vista/Windows Server 2008
2016-04-28T21:42:47.072+0800 I CONTROL  [initandlisten] db version v3.2.5
2016-04-28T21:42:47.072+0800 I CONTROL  [initandlisten] git version: 34e65e5383f7ea1726332cb175b73077ec4a1b02
2016-04-28T21:42:47.072+0800 I CONTROL  [initandlisten] allocator: tcmalloc
2016-04-28T21:42:47.073+0800 I CONTROL  [initandlisten] modules: none
2016-04-28T21:42:47.073+0800 I CONTROL  [initandlisten] build environment:
2016-04-28T21:42:47.073+0800 I CONTROL  [initandlisten]     distarch: i386
2016-04-28T21:42:47.073+0800 I CONTROL  [initandlisten]     target_arch: i386
2016-04-28T21:42:47.073+0800 I CONTROL  [initandlisten] options: { net: { port: 27017 }, storage: { dbPath: "C:\Program Files\MongoDB\Server\data" }, systemLog: { destination: "file", path: "C:\Program Files\MongoDB\Server\log\mongodb.log" } }
2016-04-28T21:42:47.090+0800 I STORAGE  [initandlisten] exception in initAndListen: 28663 Cannot start server. The default storage engine 'wiredTiger' is not available with this build of mongod. Please specify a different storage engine explicitly, e.g. --storageEngine=mmapv1., terminating
2016-04-28T21:42:47.090+0800 I CONTROL  [initandlisten] dbexit:  rc: 100

這日誌記錄的跟,命令提示中提示的還不一樣啊,怎麼辦?因為命令提示中,提示是因為日誌沒有開啟造成的錯誤,而日誌說引擎不合適。只能先一個嘗試一下。那我不新增日誌,執行如下命令
mongod.exe --dbpath="C:\Program Files\MongoDB\Server\data" --port=27017
這裡寫圖片描述
通過這個提示,看來這次確定了,是預設儲存引擎不支援了。只好換一個引擎。執行如下命令:

mongod.exe --dbpath="C:\Program Files\MongoDB\Server\data"  --logpath="C:\Program Files\MongoDB\Server\log\mongodb.log" -storageEngine="mmapv1" --port=27017  --journal

執行結果如下:
這裡寫圖片描述
一直在等待連線中,此時我查看了一些log日誌
這裡寫圖片描述
看來是啟動了。當然也可以在瀏覽器中輸入http://localhost:27017 如果出現如下介面,程式碼安裝成功。
這裡寫圖片描述

連線MongoDB(針對客戶端)

官方原話如下:
Connect to MongoDB.¶

To connect to MongoDB through the mongo.exe shell, open another Command Prompt.

C:\mongodb\bin\mongo.exe
If you want to develop applications using .NET, see the documentation of C# and MongoDB for more information.

要想連線MongoDB,需要開啟另外一個命令提示符視窗,通過mongo.exe來建立連線。如果要使用 .NET開發應用,需要檢視C#文件和其他MongoDB手冊,來獲取更多資訊。

說白了,就是客戶端通過mongo.exe來連線mongoDB。其實直接輸入mongo也一樣,當然我這裡面出現了一些警告資訊,暫時可以不去理會。
這裡寫圖片描述

客戶端連線mongoDB方式如下(裡面的mongoDB也可以換成mongo.exe)
這裡寫圖片描述

常用命令

1.db.help()
檢視命令提示
這裡寫圖片描述
2.db
檢視當前所在資料庫的名字
這裡寫圖片描述
3.use命令
use+資料庫名 表示切換或是建立資料庫。和Mysql中use的唯一不同點,就是當資料庫不存在的時候,MongoDB中的use可以建立資料庫。
這裡寫圖片描述
4.show dbs
顯示資料庫,需要注意的是show dbs,只會顯示有資料的庫,沒有資料的庫,是不會顯示的。下圖中,dqs資料庫中,開始沒有資料,所以不會顯示,當我插入一條資料庫後,show dbs 就會顯示它。
這裡寫圖片描述
5.db.dropDatabase()
刪除當前資料。
刪除之前
這裡寫圖片描述
執行刪除操作,刪除之後,當前庫不變化。
這裡寫圖片描述
刪除之後,資料庫檔案也沒有了。
這裡寫圖片描述
6.db.stats()
檢視當前資料的狀態
這裡寫圖片描述
7.db.version()
檢視mongoDB版本
8.db.getMongo()
檢視當前連線機器的ip
這裡寫圖片描述
9.mongoDB對支援JavaScript
因為mongoDB支援JavaScript,所以可以直接在命令提示中輸入js程式碼。如下圖
這裡寫圖片描述