MongoDB 安裝和可視化工具

MongoDB 是一款很是熱門的NoSQL,面向文檔的數據庫管理系統,官方下載地址是:MongoDB,我選擇的是 Enterprise Server (MongoDB 3.2.9)版本,安裝在Windows Server 2012環境中。mongodb

MongoDB使用BSON對象來存儲,與JSON格式類型的鍵值對(key/value)相似,MongoDB數據庫和關係型DB的存儲模型對應關係:shell

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之間以「;」分割。ide

二,帶你入門工具

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