MongoCola使用教程 1 - MongoDB的基本操作和聚合功能


前言

     在開始正文之前,感謝博客園的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 文件夾里面了)

 

 
      cd 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就可以進行服務器的啟動了。

    

 

 

    

正常啟動的Dos界面

 

 使用工具監視操作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還比較粗糙,有時間再改了。。。。

    (不知道有沒有朋友 對於 繪制自定義TreeView 有經驗嗎,能不能幫忙繪制一下Node的連線和前面的加減號,我畫得不是很好)
     這里_id是系統自動生成的主鍵。(一般情況下,這個id不會重復,不過,通過一些方法,是可以讓這個id重復的。。。。O(∩_∩)O~)

     軟件為你准備了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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM