MongoDB 是由C++語言編寫的,是一個基於分佈式文件存儲的開源數據庫系統。在高負載的狀況下,添加更多的節點,能夠保證服務器性能。javascript
MongoDB 將數據存儲爲一個文檔,數據結構由鍵值(key=>value)對組成。MongoDB 文檔相似於 JSON 對象。字段值能夠包含其餘文檔,數組及文檔數組。java
當前數據庫版本:Mongodb 4.0.5mongodb
第一步:下載MongoDB數據庫
第二步:安裝MongoDB數組
下載後雙擊該文件,按操做提示安裝便可。可是安裝過程當中,你能夠經過點擊 "Custom(自定義)" 按鈕來設置你的安裝目錄。安全
第三步:建立數據庫文件的存放位置服務器
在MongoDB下建立data,在data下再建立db:D:\MongoDB\data\db數據結構
由於啓動mongodb服務以前須要必須建立數據庫文件的存放文件夾,不然命令不會自動建立,並且不能啓動成功。app
第四步:啓動MongoDB服務分佈式
進入D:\MongoDB\bin目錄(注意:先輸入d:進入d盤,而後輸入cd D:\MongoDB\bin),而後輸入以下的命令啓動mongodb服務:mongod --dbpath D:\MongoDB\data\db,若是出現如下界面,表示啓動成功
27017是mongodb的默認端口號
參數 描述
--bind_ip 綁定服務IP,若綁定127.0.0.1,則只能本機訪問,不指定默認本地全部IP
--logpath 定MongoDB日誌文件,注意是指定文件不是目錄
--logappend 使用追加的方式寫日誌
--dbpath 指定數據庫路徑
--port 指定服務端口號,默認端口27017
--serviceName 指定服務名稱
--serviceDisplayName 指定服務名稱,有多個mongodb服務時執行。
--install 指定做爲一個Windows服務安裝。
第五步:配置MongoDB驗證
MongoDB 默認直接鏈接,無須身份驗證,若是當前機器能夠公網訪問,且不注意Mongodb 端口(默認 27017)的開放狀態,那麼Mongodb就會產生安全風險,被利用此配置漏洞,入侵數據庫。
配置MongoDB驗證,用於鏈接操做數據庫,提升安全性
1,管理員帳戶
建立管理員帳戶
1 use admin 2 3 db.createUser( 4 { 5 user: "adminUser", 6 pwd: "adminPass", 7 roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] 8 } 9 )
若是出現以下界面,則表示建立成功
驗證用戶
1 use admin 2 3 db.auth("adminUser", "adminPass")
若是出現以下界面,則表示驗證成功
2,普通帳戶
建立普通帳戶
1 use jackson_YingQi 2 3 db.createUser( 4 { 5 user: "myAdminUser", 6 pwd: "myAdminPass", 7 roles: [ { role: "readWrite", db: "jackson_YingQi" }] 8 } 9 )
若是出現以下界面,則表示建立成功
驗證用戶
1 use jackson_YingQi 2 3 db.auth("myAdminUser", "myAdminPass")
若是返回1,表示驗證成功
可視化工具還方便操做與查看
第一步:下載Robo 3T
第二步:安裝Robo 3T
一直點擊下一步便可,可自定義安裝路徑
第三步:配置建立鏈接
1,打開Robo 3T ,點擊「create」建立一個到mongoDB的鏈接。
2,給建立的鏈接新建一個名稱,並填上數據庫的ip和端口。默認是localhost
3,鏈接成功以後,插入數據,編輯以後再保存就能夠。
查看剛纔插入的數據
$type操做符是基於BSON類型來檢索集合中匹配的數據類型,並返回結果。
Type | Number | Alias | Notes |
---|---|---|---|
Double | 1 | 「double」 | |
String | 2 | 「string」 | |
Object | 3 | 「object」 | |
Array | 4 | 「array」 | |
Binary data | 5 | 「binData」 | |
Undefined | 6 | 「undefined」 | Deprecated. |
ObjectId | 7 | 「objectId」 | |
Boolean | 8 | 「bool」 | |
Date | 9 | 「date」 | |
Null | 10 | 「null」 | |
Regular Expression | 11 | 「regex」 | |
DBPointer | 12 | 「dbPointer」 | Deprecated. |
JavaScript | 13 | 「javascript」 | |
Symbol | 14 | 「symbol」 | Deprecated. |
JavaScript (with scope) | 15 | 「javascriptWithScope」 | |
32-bit integer | 16 | 「int」 | |
Timestamp | 17 | 「timestamp」 | |
64-bit integer | 18 | 「long」 | |
Decimal128 | 19 | 「decimal」 | New in version 3.4. |
Min key | -1 | 「minKey」 | |
Max key | 127 | 「maxKey」 |