MongoDB安裝和可視化工具
MongoDB 是一款非常熱門的NoSQL,面向文檔的數據庫管理系統,我選擇的是 Enterprise Server (MongoDB 3.2.9)版本,安裝在Windows Server 2012環境中。
MongoDB使用BSON對象來存儲,與JSON格式類型的鍵值對(key/value)類似,MongoDB數據庫和關系型DB的存儲模型對應關系:
NoSQL 數據庫的理論基礎是CAP 理論,分別代表 Consistency(強一致性),Availability(可用性),Partition Tolerance(分區容錯),分布式數據系統只能滿足其中兩個特性:
C:系統在執行某項操作后仍然處于一致的狀態。在分布式系統中,更新操作執行成功之后,所有的用戶都能讀取到***的值,這樣的系統被認為具有強一致性。
A:用戶執行的操作在一定時間內,必須返回結果。如果超時,那么操作回滾,跟操作沒有發生一樣。
P:分布式系統是由多個分區節點組成的,每個分區節點都是一個獨立的Server,P屬性表明系統能夠處理分區節點的動態加入和離開。
在構建分布式系統時,必須考慮CAP特性。傳統的關系型DB,注重的是CA特性,數據一般存儲在一臺Server上。而處理海量數據的分布式存儲和處理系統更注重AP,AP的優先級要高于C,但NoSQL并不是完全放棄一致性(Consistency),NoSQL保留數據的最終一致性(Eventually Consistency)。最終一致性是指更新操作完成之后,用戶最終會讀取到數據更新之后的值,但是會存在一定的時間窗口,用戶仍會讀取到更新之前的舊數據;在一定的時間延遲之后,數據達到一致性。
一,設置Path環境變量
在Windows 環境中,MongoDB默認的安裝文件存儲目錄是:C:Program FilesMongoDBServer3.2bin,點擊 Windows+R,輸入cmd,啟動Command Prompt,進入到安裝目錄:
每次打開Command Prompt都需要進入到MongoDB的安裝目錄十分麻煩,可以修改Computer的Environment Variables,右擊This PC->Properties,依次點擊 Advanced System Setting->Environment Variables,打開Environment Variables 窗體,修改 Path 系統變量,在 Path 變量的字符串后面追加”C:Program FilesMongoDBServer3.2bin”,注意兩個Path之間以“;”分割。
二,帶你入門
1,啟動MongoDB實例
環境變量設置成功之后,在C盤中創建一個文件夾data,用于存儲MongoDB的數據庫文件。然后,打開一個命令行工具,輸入mongod 啟動MongoDB實例,默認監聽的TCP端口是 27017 。
- mongod
MongoDB同時啟動一個HTTP服務器,監聽27017端口,如果MongoDB 實例安裝在本地,那么在瀏覽器中輸入:http://localhost:27017/
mongod 是整個MongoDB最核心的進程,負責數據庫的創建,刪除等管理操作,運行在服務器端,監聽客戶端的請求,提供數據服務。
2,鏈接到MongoDB 實例
不要關閉MongoDB實例,新打開一個命令行工具,輸入mongo ,該命令啟動mongo shell,shell 將自動連接本地(localhost)的MongoDB實例,默認的端口是27017:
- mongo
mongo進程是構造一個Javascript Shell,用于跟mongod進程交互,根據mongod提供的接口對MongoDB數據庫進行管理,相當于SSMS(SQL Server Management Studio),是一個管理MongoDB的工具。
3,查看當前連接的DB
使用命令查看正在連接的數據庫名字
- db
- db.getName()
4,查看MongoDB實例中的db 和 collection
- show dbs
- show collections
- db.getCollectionNames()
5,切換db
- use foo
6,在foo數據庫中創建users集合,向集合中插入一條document
- use foo
- db.users.insert({"name":"name 1",age:21})
- db.users.find()
7,關閉MongoDB 實例
在mongo shell中,執行以下命令,關閉MongoDB實例
- use admin
- db.shutdownServer()
8,幫助命令
- help
db.help()查看數據庫級別的幫助
db.mycoll.help()查看集合級別的幫助
三,mongod 命令常用參數
1,常用參數
mongod 是MongoDB系統的主要守護進程,用于處理數據請求,數據訪問和執行后臺管理操作,必須啟動,才能訪問MongoDB數據庫。
在啟動mongod時,常用的參數是:
- –dbpath :存儲MongoDB數據文件的目錄
- –directoryperdb:指定每個數據庫單獨存儲在一個目錄中(directory),該目錄位于–dbpath指定的目錄下,每一個子目錄都對應一個數據庫名字。Uses a separate directory to store data for each database. The directories are under the –dbpath directory, and each subdirectory name corresponds to the database name.
- –logpath :指定mongod記錄日志的文件
- –fork:以后臺deamon形式運行服務
- –journal:開始日志功能,通過保存操作日志來降低單機故障的恢復時間
- –config(或-f):配置文件,用于指定runtime options
- –bind_ip :指定對外服務的綁定IP地址
- –port :對外服務窗口
- –auth:啟用驗證,驗證用戶權限控制
- –syncdelay:系統刷新disk的時間,單位是second,默認是60s
- –replSet :以副本集方式啟動mongod,副本集的標識是setname
2,MongoDB的啟動方式
2.1 以命令方式啟動,默認的dbpath是 C:datadb
- mongod --dbpath=C:datadb
2.2 以配置文檔的方式啟動
將mongod的命令參數寫入配置文檔,以參數-f 啟動
- mongod -f C:datadbmongodb_config.config
2.3 以daemon方式啟動
當啟動MongoDB的進程關閉后,MongoDB隨之關閉,只需要使用–fork參數,就能使MongoDB以后臺守護進程方式啟動。
- mongod -fork
3,查看mongod的啟動參數
- db.serverCmdLineOpts()
四,mongo命令常用參數
mongo 是一個交互式的js shell,提供了一個強大的js 環境,為DBA管理MongoDB,developer查詢MongoDB數據提供接口。通過mongo shell和MongoDB進行交互,查詢和修改MongoDB數據庫,管理MongoDB數據庫,維護MongoDB的副本集和分片集群,是一個非常強大的工具。
在啟動mongo shell時,常用的參數是:
- –nodb: 阻止mongo在啟動時連接到數據庫實例;
- –port :指定mongo連接到mongod監聽的TCP端口,默認的端口值是27017;
- –host :指定mongod運行的server,如果沒有指定該參數,那么mongo嘗試連接運行在本地(localhost)的mongod實例;
- :指定mongo連接的數據庫
- –username/-u 和 –password/-p :指定訪問MongoDB數據庫的賬戶和密碼,只有當認證通過后,用戶才能訪問數據庫;
- –authenticationDatabase :指定創建User的數據庫,在哪個數據庫中創建User時,該數據庫就是User的Authentication Database;
五,MongoDB的可視化工具
1,推薦 Robomongo
Robomongo 是開源,免費的MongoDB管理工具,下載地址:https://robomongo.org/
2,MongoBooster
支持MongoDB 3.2 版本,個人使用免費,用于商業收費,下載地址:https://mongobooster.com/downloads%20