- 綠色版查看
- 綠色版查看
- 綠色版查看
- 綠色版查看
之所以喜歡MongoDB,主要是因為在動態語言中使用它是如此的簡單,自然。到目前為止,我已經在兩個項目(Encode 和 Sparrw)中使用過它了,雖然對這個選擇我非常滿意,但是有些問題我還是沒有注意到,這些問題讓我抓了好幾個小時的頭皮才解決。如果你有多臺機器,然后為數據庫多分配幾臺機器,那么有些問題可以迎刃而解,但是我的項目是運行在單個(虛擬)服務器之上的低流量Web應用程序。
MongoDB服務端可運行在Linux、Windows或OS X平臺,支持32位和64位應用,默認端口為27017。推薦運行在64位平臺,因為MongoDB
在32位模式運行時支持的最大文件尺寸為2GB。
MongoDB把數據存儲在文件中(默認路徑為:/data/db),為提高效率使用內存映射文件進行管理。
安裝配置:
MongoDB默認的數據目錄為:C:datadb。如果不用默認目錄,則需要在在mongod.exe命令后加--dbpath參數。
創建數據目錄。我創建的是D:devmongodb-win32-x86_64-2.4.5datadb
創建日志目錄及其文件。我創建的是D:devmongodb-win32-x86_64-2.4.5log及D:devmongodb-win32-x86_64-2.4.5loglog.txt。
1、啟動MongoDB
打開cmd窗口(cmd.exe),進入D:devmongodb-win32-x86_64-2.4.5bin,執行mongod.exe命令,見下圖。
mongod.exe --logpath=D:devmongodb-win32-x86_64-2.4.5loglog.txt --dbpath=D:devmongodb-win32-x86_64-2.4.5datadb!
--logpath 參數是設定日志文件的路徑。
--dbpath 參數是設定數據庫文件的存放路徑。
mongod.exe命令的所有參數選項可通過mongod.exe --help查看。
2、作為服務進行安裝
使用管理員權限打開windows的cmd窗口,進入D:devmongodb-win32-x86_64-2.4.5bin目錄。
mongod.exe --install --logpath=D:devmongodb-win32-x86_64-2.4.5loglog.txt --dbpath=D:devmongodb-win32-x86_64-2.4.5datadb
--install 參數是設定安裝為服務器!
設置為服務后,即可在cmd(管理員權限打開的windows cmd窗口)窗口用服務的方式啟動或停止MongoDB。
net start mongodb 啟動mongodb服務
net stop mongodb 啟動mongodb服務
3、進入shell環境界面
進入sheelMongoDB后,在cmd窗口進入D:devmongodb-win32-x86_64-2.4.5bin目錄,輸入mongo.exe,則可以進入shell環境界面。
主要功能:
面向集合存儲,易存儲對象類型的數據。
模式自由。
支持動態查詢。
支持完全索引,包含內部對象。
支持查詢。
支持復制和故障恢復。
使用高效的二進制數據存儲,包括大型對象(如視頻等)。
自動處理碎片,以支持云計算層次的擴展性
支持RUBY,PYTHON,JAVA,C++,PHP等多種語言。
文件存儲格式為BSON(一種JSON的擴展)
可通過網絡訪問
更新日志:
MongoDB 2.6 已經在今天發布,當然,關注MongoDB的同志自然知道這個消息。
整個MongoDB2.6,個人覺得認證系統是一個重新設計的系統。當然,MongoDB 2.4.6開始,就已經在嘗試新的基于Role的認證方式了,但是真正的成熟還是在2.6.0這個版本。
TextSearch全文檢索
這個功能在 2.4.6里面就有的功能,這次的變化是,將這個TextSearch的放入了Aggerate里面了。
換句話說,原來的全文檢索的結果是孤立的,現在可以作為聚合檢索的一個部分了,文本檢索的結果可以作為其他聚合操作的輸入數據。
作為MongoDB5年里程碑的這個版本,還有其他很多對以往功能的增強。
作為一個長期觀察MongoDB的人來說,我個人認為,現在是大家可以嘗試MongoDB的一個時間點了。
2.6.0以前的版本的確有很多詬病,除了前面說過的讀寫的安全之外,還有很多設計上的問題。
經過2.4的很多演化后,很多東西都定型了:
主從(Master-Slaver)模型 被 Replication模型代替
加入基于Role的認證后,可以自定義角色(當然,系統也有一些內置的角色)
全文檢索(很遺憾,不支持中文)的強化 具有特色的 地理聚合(很多處理地理坐標的內置函數)
TLL數據集(數據集里面的記錄會慢慢自動刪除掉,有點緩存的意思)Capped數據集(固定大小的數據集,在存儲和讀寫上提高效率,犧牲靈活性)
Sharding支持了ShardKey
索引的內容豐富了不少,特別是有了text屬性的索引,對于全文檢索的幫助很大
MongoDB的2.4已經發布,其中包括新的功能,如文本搜索,基于散列的分片。
主要功能和增強功能:
基于散列分片
Capped 陣列
文本搜索(測試版)
地理空間增強
更快的計數
聚合框架的改進
基于角色的權限
工作集分析器
改進復制
什么是基于角色Role的認證系統?
在以往的MongoDB中,官方一直推薦MongoDB應該在一個Trust的環境下運行,對于認證和安全性上的考慮是不充分的。
(MongoDB的安全性和讀寫的完整性以前一直被人詬病,WriteConcern解決了寫數據的安全性,這次的RoleBase的認證機制,在一定程度上提高了MongoDB的安全性)
現在在MongoDB中創建的User,除了有用戶名,密碼等傳統屬性之外,還有一個Role的概念。
每個Role的操作權限是不同的,而且,根據細化的配置,可以將每個Role的權限定義的非常詳細,
Role可以查詢,修改某個數據庫,某個數據表,都可以做到小粒度的定義。
每個用戶可以同時擁有多個Role,這樣的話,管理員可以對于各個用戶的權限做到非常精確的控制了。
MongoDB的 具體實現 Role:
每個Role可以有多個Privilege,每個Privilege指定了可以訪問的資源(可以指定數據集,數據庫,精確到具體的某個數據集)
對于資源的可以執行的操作(Action),例如 數據集的查找 或者 更新。對于各種的操作已經做到非常小的粒度的細化了。
例如 添加用戶 和 刪除用戶 已經是兩個操作了(Action),而不是通常理解的,增刪改是同樣的操作。
(當然,可能也有人認為如此細化對于管理者來說也是一種負擔。不過一個Role一旦精心設計之后,就可以分配給不同用戶,一勞永逸了)
您的評論需要經過審核才能顯示
有用
有用
有用