MongoDB 安裝和可視化工具
MongoDB 是一款非常熱門的NoSQL,面向文檔的數據庫管理系統,官方下載地址是:MongoDB,我選擇的是 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 Files\MongoDB\Server\3.2\bin,點擊 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 Files\MongoDB\Server\3.2\bin",註意兩個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 <db_path>:存儲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 <log_path>:指定mongod記錄日誌的文件
- --fork:以後臺deamon形式運行服務
- --journal:開始日誌功能,通過保存操作日誌來降低單機故障的恢復時間
- --config(或-f)<config_file_path>:配置文件,用於指定runtime options
- --bind_ip <ip address>:指定對外服務的綁定IP地址
- --port <port>:對外服務窗口
- --auth:啟用驗證,驗證用戶權限控制
- --syncdelay<value>:系統刷新disk的時間,單位是second,默認是60s
- --replSet <setname>:以副本集方式啟動mongod,副本集的標識是setname
2,MongoDB的啟動方式
2.1 以命令方式啟動,默認的dbpath是 C:\data\db
mongod --dbpath=C:\data\db
2.2 以配置文檔的方式啟動
將mongod的命令參數寫入配置文檔,以參數-f 啟動
mongod -f C:\data\db\mongodb_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 <port> :指定mongo連接到mongod監聽的TCP端口,默認的端口值是27017;
- --host <hostname> :指定mongod運行的server,如果沒有指定該參數,那麽mongo嘗試連接運行在本地(localhost)的mongod實例;
- <db address>:指定mongo連接的數據庫
- --username/-u <username> 和 --password/-p <password>:指定訪問MongoDB數據庫的賬戶和密碼,只有當認證通過後,用戶才能訪問數據庫;
- --authenticationDatabase <dbname>:指定創建User的數據庫,在哪個數據庫中創建User時,該數據庫就是User的Authentication Database;
五,MongoDB的可視化工具
1,推薦 Robomongo
Robomongo 是開源,免費的MongoDB管理工具,下載地址:Robomongo下載
2,MongoBooster
支持MongoDB 3.2 版本,個人使用免費,用於商業收費,下載地址:MongoBooster下載
六,學習MongoDB
1,推薦學習MongoDB書籍
動物書《MongoDB權威指南-第二版》,非常經典
2,學習MongoDB的官方手冊: MongoDB Manual
3,學習MongoDB的入門教程:MongoDB Tutorial
參考文檔:
mongod
mongo
MongoDB 安裝和可視化工具