html
mysql
MongoDB做爲一款通用型數據庫,除了可以建立、讀取、更新和刪除數據以外,還提供了一系列不斷擴展的獨特功能sql
一、索引mongodb
支持通用二級索引,容許多種快速查詢,且提供惟一索引、複合索引、地理空間索引、全文索引數據庫
二、聚合數組
支持聚合管道,用戶能經過簡單的片斷建立複雜的集合,並經過數據庫自動優化瀏覽器
緩存
支持存在時間有限的集合,適用於那些將在某個時刻過時的數據,如會話session。相似地,MongoDB也支持固定大小的集合,用於保存近期數據,如日誌安全
四、文件存儲服務器
支持一種很是易用的協議,用於存儲大文件和文件元數據。MongoDB並不具有一些在關係型數據庫中很廣泛的功能,如連接join和複雜的多行事務。省略 這些的功能是處於架構上的考慮,或者說爲了獲得更好的擴展性,由於在分佈式系統中這兩個功能難以高效地實現。
須要注意的是: #一、文檔中的鍵/值對是有序的。 #二、文檔中的值不只能夠是在雙引號裏面的字符串,還能夠是其餘幾種數據類型(甚至能夠是整個嵌入的文檔)。 #三、MongoDB區分類型和大小寫。 #四、MongoDB的文檔不能有重複的鍵。 #五、文檔中的值能夠是多種不一樣的數據類型,也能夠是一個完整的內嵌文檔。文檔的鍵是字符串。除了少數例外狀況,鍵可使用任意UTF-8字符。 文檔鍵命名規範: #一、鍵不能含有\0 (空字符)。這個字符用來表示鍵的結尾。 #二、.和$有特別的意義,只有在特定環境下才能使用。 #三、如下劃線"_"開頭的鍵是保留的(不是嚴格要求的)。
4.0下載地址: https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-ssl-4.0.8-signed.msi
安裝時去除多餘的組件安裝提升速度:
此時MongoDB已經開啓,瀏覽器訪問http://localhost:27017/,頁面上輸出: It looks like you are trying to access MongoDB over HTTP on the native driver port.
說明MongoDB已經啓動了,且它的默認端口(27017)沒有被佔用。
運行bin下的終端程序mongo.exe 其與mysql性質相同都是客戶端!
'mongo' 看見歡迎信息則說明登陸成功
此時沒有任何的權限限制,默認是管理員角色。
#一、建立帳號 use admin db.createUser( { "user": "root", "pwd": "123", "roles": [ { "role": "root","db": "admin" } ] } ) use test db.createUser( { "user": "jerry", "pwd": "123", "roles": [ { "role": "readWrite", db: "test" }, { "role": "read", "db": "db1" } ] } ) 在mongodb中用不一樣的數據庫來區分權限,要管理哪一個數據庫就在哪一個數據庫下建立用戶便可,建立管理員帳戶則在admin下建立! db 是一個全局變量 表示當前數據庫 db.createUser()是調用一個內部函數用於建立用戶 每一個帳號能夠具有多個角色
默認狀況下mongodb不會加載認證信息就像mysql跳過受權表同樣,建立完帳號用戶須要開啓用戶認證。
修改配置文檔mongod.cfg(位置:安裝目錄\bin下)
首先,將bind_ip改成0.0.0.0(讓其餘電腦能夠訪問,用於遠程鏈接)
security: authorization: enabled # 注意縮進
而後找到#secuity:改爲下圖所示,開啓安全認證。
而後重啓MongDB Server服務,啓用認證。
#直接mongo進入程序 已經沒法查看數據庫 show dbs #登陸方式1: authenticationDatabase指定數據庫 mongo --port 27017 -u "root" -p "123" --authenticationDatabase "admin" #登陸方式2:進入mongo後,進入某個數據庫中,再輸入密碼 use admin db.auth("root","123") #刪除帳號 db.dropUser('用戶名'); #修改密碼 db.changeUserPassword(用戶名, 新密碼);