標籤:
摘要
上篇文章介紹了count,group,distinct幾個簡單的彙總操作,其中,group比較麻煩一點。本篇文章將學習mapReduce的相關內容。
相關文章
[MongoDB]入門操作
[MongoDB]增刪改查
[MongoDB]count,gourp,distinct
bat
今天突然發現,每次開啟mongodb服務端和用戶端,太頻繁了。所以想了一個辦法,把它們弄成批處理命令了。
開啟server
@echo offstart cmd /k "cd/d C:\Program Files\MongoDB\Server\3.2\bin&&mongod"
執行後
啟動client
@echo offstart cmd /k "cd/d C:\Program Files\MongoDB\Server\3.2\bin&&mongo"
執行後
這裡一個小插曲,有些事情,重複做沒必要,能省力就省力了。當然有些mongodb可視化用戶端工具,更方便。之後將介紹幾款常用的工具。
mapReduce
MapReduce這個函數,也是彙總函式的一種,為什麼把它單獨的列出來,就因為它太複雜了跟group有的一拼。
其實該函數也比較容易記,因為它有兩個參數,一個是map,另一個就是Reduce
map
映射函數,在該函數中會調用emit(key,value),集合會按照你指定的key進行映射分組。
reduce
簡化函數,會對map分組後的資料進行分組簡化,reduce(key,value)中的key就是emit中的key,vlaue為emit分組後的emit(value)的集合。
result:存入的集合名稱。
input:傳入的document的個數。
reduce:此函數被調用的次數。
emit:此函數被調用的次數。
output:輸出的結果個數。
然後就可以在result上面進行查詢按name分組後的結果了。
關於cmd中輸入命令換行的問題,這裡也簡單的介紹一下,比如上面的map和reduce函數非常長,那麼我們可以進行換行進行輸入,技巧:輸入的時候,不要輸入結束符號就可以,比如function的結束符號為},只要不輸人},斷行符號的時候,會列印...,這個時候你可以接著輸入。
我們通過換行進行上面的mapReduce操作。
這樣看著更舒服了。
總結
關於mapReduce的內容,非常多,這裡只是列舉了mapReduce的使用方法。更多的內容可以參考下面的文章
MapReduce百度百科
http://www.cnblogs.com/daizhj/archive/2010/06/10/1755761.html
http://www.cnblogs.com/huangxincheng/archive/2012/02/21/2361205.html
http://www.cnblogs.com/loogn/archive/2012/02/09/2344054.html
[MongoDB]mapReduce