前言
在開始正文之前,感謝博客園的Nosql愛好者對於MongoCola工具的試用(使用)。特別感謝 呆呆 這位朋友的Bug報告,讓我糾正了一個很嚴重的Bug。同時也感謝以前的多個網友在博客留言中給我的意見,建議,以及BUG的修正方案。這個工具的進步離不開你們的貢獻。最新版的MongoCola為1.13.主要改進了一些視覺效果上的東西,畢竟這個工具不是個人的工具了,在保證品質的前提下,也要考慮到美觀和易用性了。
如何得到MongoDB
MongoDB是一個開源的項目,你可以從GitHub上獲取MongoDB的源代碼,當然對於大部分用戶來說,我們並不需要源代碼,直接下載可執行的文件即可。最新版的MongoDB是2.0.4.
你可以從MongoDB的官方網站下載。 官方網站下載地址:http://www.mongodb.org/downloads
溫馨提示:各種平台的版本很多,請選擇正確的版本下載。
下載后的文件是一個壓縮包,直接解壓就可以了。解壓后,你會看到若干個 EXE 可執行文件,其中 mongod.exe 是重點文件(Mongo device)啟動新的Mongo服務器必須要用到這個。
如何啟動一個MongoDB服務器
啟動一個MongoDB服務器的實例,有很多方法,這里將一個最簡單的方法(注意,不是最合適的方法)。這個方法非常適合我們學習者使用。
首先,請准備好一個目錄,用於存放MongoDB的數據庫文件。例如 C:\mongodb\master 這樣的目錄。MongoDB的數據庫文件和日志文件等等都會生成在這個目錄下面。
確保了目錄已經存在后,我們可以在DosCommand里面啟動一個MongodB服務器了。(我想大部分在這里的人是知道如何啟動DosCommand命令行的)
然后依次輸入以下兩條命令:(我們假設你的mongod.exe放在C:\runmongo\bin 文件夾里面了)
mongod --port 28018 --dbpath C:\mongodb\master --master --rest --journal
第一條指令是將工作目錄切換到Mongo的Bin下面,第二條命令是啟動一個Mongodb的服務器。 啟動命令的詳細細節,暫時不介紹,請大家試試看能不能啟動。(這里我選擇了28018這個端口作為Mongodb的TCP/IP端口,一般建議使用10000以上的端口)。
一般,我會將這兩條命令放在一個擴展名為 .bat 的批處理文件里面,以后只需要執行這個批處理文件就可以了。例如 你可以新建一個名為master.bat的文件,然后將這兩句指令保存到這個文件中,以后通過雙擊master.bat就可以進行服務器的啟動了。

使用工具監視操作MongoDB
你可以使用Mongo原生的命令行工具來監視和操作MongoDB,也可以使用各種MongoDB的工具來操作MongoDB。這里我使用自己開發的工具來監視和操作MongoDB。
1.啟動MongoCola:如果你是第一次使用MongoCola,先選擇界面語言。由於工具是面向全球的,所以使用英語為默認語言。當然,你可以選擇 中文 為界面語言,

然后,請設定一下你的Mongo的可執行文件的路徑,軟件的一些功能需要使用一些原生的可執行文件

例如我的路徑是C:\runmongo\bin 當然,你也可以在以后進行設置。不過強烈建議一開始就設置。不然影響部分功能的使用。
2.接下來,我們新建一個數據庫連接。

由於第一次使用,所以沒有任何登錄過的連接。首先,我們新建一個新的連接。

一個最最基本的鏈接,只需要Host名稱和Port就可以了。我將這個鏈接的名字定為 Master,然后由於是本地的服務器,所以Host就填為localhost,端口是28018.
設定好了以后,可以按下Test來測試一下是否設置正確,或者直接按下 Add 來登錄一個新的連接。
OK,登錄好了之后,在連接管理面板里面雙擊這個鏈接,就可以打開主界面了。(你也可以選中一個鏈接,然后按下OK按鈕)。
【注意:密碼將以明文形式放入Config.xml文件中】
界面基本介紹

界面分為左右兩個區域,左邊的是連接列表(通常1個連接代表一個服務器,但是連接的概念和服務器的概念並不是等價的)。你可以在這個區域里面看到服務器的大致結構,例如數據庫和數據集的整體狀況。右邊是各種數據庫對象的詳細信息表示區域,這里可能顯示一個數據集的記錄,或者顯示文件系統和用戶系統。在初始化的狀態下,這里顯示當前連接的狀態。
這里我們看到服務器下面有一個local的數據庫,現在他是我們唯一擁有的數據庫。local數據庫下面沒有 User,沒有GFS(文件系統),沒有Javascript文檔,沒有系統和普通的數據集。說到底,什么都沒有。。。
由於local是系統數據庫,軟件認為不能由用戶來操作,所以,我們先要新建一個數據庫。我們選中服務器的圖標,然后從右鍵菜單中選擇 新建數據庫(createNewDatabase),輸入數據庫名稱之后,一個新的數據庫就建成了。(由於已經知道的Mongodb的Bug,請使用英文作為數據庫名稱)。作為例子,我新建了一個Cnblogs的數據庫。然后選中這個數據庫,右鍵菜單里面有新建數據集的菜單項(Create New Collection)。

這里的數據集名稱,也暫時不要使用中文。關於使用中文數據集名稱的Bug,我已經報告Mongo官方了,但是現在還沒有修正好。Bug票:https://jira.mongodb.org/browse/SERVER-4412
一般用戶,直接填寫數據集名稱就可以了,一些高級選項,請在知道確切含義后選擇。特別是Iscapped屬性,用這個屬性后,數據集里面的文檔(數據)可能無法修改。好了,我們新建一個NoSql的數據集。

如果沒有問題,左邊的數據庫一覽的Cnblogs下面將會有一個Nosql數據集掛在一般數據集下面。由於使用了索引,系統數據集里面也會有一個System.index數據集。雙擊一下這個數據集看看。右邊的數據視圖將會展示數據集內容,當然現在什么都沒有。

嘗試加入第一個文檔
OK,接下來我們加入一條數據到數據集中,Mongo里面將數據記錄叫做 文檔。按下工具欄的第一個圖標,添加一個文檔吧。
這里我們使用Json作為描述文檔的語言,它看起來像這樣
"Name":"MongoDB","Type":"Nosql"
}

注意:一般我們不用(不能輸入)_id這個索引字段,這個是Mongo自動維護的字段。這里我們添加兩個字段,一個是Name,值是MongoDB,一個是Type,值是Nosql。

插入成功后,你可以看到第一條記錄了。由於時間問題,TreeListView還比較粗糙,有時間再改了。。。。
軟件為你准備了3種視圖來查看數據:樹形視圖,列表視圖,和Json文本視圖。
聚合功能
介紹這個功能前,我們現在數據庫里面追加一些數據吧。

我們一共有4條數據,2條Nosql的,2條Sql的數據。
數據統計:Count
這個功能很簡單,就是看看數據集里面的文檔(數據)件數。
從左邊的服務器視圖中,選中數據集,在右鍵菜單中選中聚合(aggregation)菜單項里面的Count功能,記錄條數就會以彈出框的形式告訴用戶。
數據統計:Distinct
啟動Distinct的方法和Count一樣,在右鍵菜單中選中聚合(aggregation)菜單項里面的Distinct功能。這個時候,你需要在彈出窗體里面選擇你需要做Distinct的字段名稱了。
如果我們以Name做Distinct,結果是4件記錄,如果我們以Type做Distinct,結果是2件記錄。看了下面的圖,我想各位都知道這個結果是怎么得出來的了。

數據統計:Group和MapReduce
暫時不做說明。
簡單的查詢功能
Nosql的查詢功能一直是一個軟肋,這里我開發了一個簡單的查詢器。
例如,我想查找所有的Nosql的數據。那么我們可以使用查詢功能,你可以在視圖的工具欄里面按下那個雙筒望遠鏡的圖標。
然后進行如下設置即可。字段是下拉表里面選中的Type,EQ表示“等於”的意思,然后類型是BsonString,需要等於的值是 “Nosql”
執行這個過濾器后數據就只有2條被表示到數據視圖中了。(這個時候如果再使用聚合的話,結果將默認建立在這個過濾器的基礎上,這個時候做Count,結果是2)

你可以使用工具欄上的 過濾器圖標來切換 數據過濾的啟停狀態。注意:id字段比較特殊,不能屏蔽。
如何得到Mongocola1.13
你可以從Github下載本軟件:https://github.com/magicdict/MagicMongoDBTool/downloads
本軟件是開源軟件,所以沒有任何功能限制。
MongoCola 最新版本:1.13 Mongodb 最新版本 2.0.4 C# Driver 最新版本 1.3.1
未完待續
3月31日,MongoDB在上海召開技術者大會,有人去嗎?詳細情況:http://www.10gen.com/events/mongodb-shanghai