標籤:sms 儲存 div lin 修改 create 需要 enc 副本
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 dbsshow collections
db.getCollectionNames()
5,切換db
use foo
6,在foo資料庫中建立users集合,向集合中插入一條document
use foodb.users.insert({"name":"name 1",age:21})db.users.find()
7,關閉MongoDB 執行個體
在mongo shell中,執行以下命令,關閉MongoDB執行個體
use admindb.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 安裝和視覺化檢視