摘要
上篇文章介紹了CRUD的操作,會了這些,基本上可以完成很多工作了。但如果遇到統計類的操作,那么就需要學習下本篇的內容了。
相關文章
count,gourp,distinct,mapReduce
count
作用類似sql中的count函數,用來計數。
如上圖所示,列舉了不帶參數,帶參數,以及先find后count的方式。
distinct
去重,接收字段參數,語義:按某字段去重。比如上圖中,我們按name去重。
group
顧名思義是分組的意思,與sql中group by相同。但在mongodb中group就比較復雜了。
參數:
key:按照key進行分組。
initial:每組都分享的“初始化函數”。可以在此處初始化一些變量,供每組進行使用。
$reduce:該函數有兩個參數,第一個參數是當前document對象,第二個參數是上次操作的累計對象。collection中有多少個document就會調用多少次$reduce。
condition:過濾條件。
finalize:該函數會在每組document執行完成后,就會調用該函數,可以在這個函數中,做一些后續的工作,比如進行計數操作,統計結果的個數。
例子:根據age進行分組,查找每個年齡段的人員姓名。如圖一所示:
圖一
計數,分組后,符合條件的user有多少個。
總結
本篇文章介紹了常見的集合聚合操作。其中,group的操作比較麻煩一點。了解group的參數的作用,平時這些命令可以保存一個模板。用到的時候沾過去,在這個的基礎上做修改比較方便點。因為實在太長了。
參考
http://www.cnblogs.com/huangxincheng/archive/2012/02/21/2361205.html