mongodb中使用分組,聚合和對映 歸併

2021-08-18 14:24:42 字數 2282 閱讀 1849

分組group()語法

group(key , reduce ,initial, [keyf] , [cond] , finalize)

key :乙個指定要根據哪些鍵進行分組的物件,其屬性為要用於分組的字段。

cond :可選引數。這是乙個query物件,決定了初始結果集將包含哪些文件。

initial :乙個包含初始欄位和初始值的初始group物件,用於在分組期間聚合資料

reduce :乙個接受引數obj和prev的函式(function(obj,prev)),對於每個與查詢匹配的文件,都執行這個函式。其中引數obj為當前文件,而prev是根據引數initial建立的物件,這讓您能夠根據obj來更新prev

finalize :乙個接受唯一引數的obj的函式(function(obj)),這個引數是對與每個鍵值組合匹配的最後乙個文件執行reduce函式得到的。

keyf :可選引數,用於替代引數key,可以不指定其屬性為分組欄位的物件,而指定乙個函式。可以使用函式動態地指定要根據哪些鍵進行分組。

查出persons中每個國家學生數學成績最好的學生資訊(必須在90以上)

db.persons

.group(,

initial:,

reduce:function(obj,prev)},

cond:}

})

說明比如中國有兩個學生的數學成績都為96,只會顯示順序上先出現的學生聚合$group用法

])mapreduce()語法

mapreduce(map, reduce , argument )

引數map是乙個函式,將對資料集中的每個物件執行它來生成乙個鍵和值,這些值被加入到與鍵相關聯的陣列中,供歸併階段使用。

引數reduce是乙個函式,將對map函式生成的每個物件執行它。reduce函式必須將鍵作為第乙個引數,將與鍵相關聯的值陣列作為第二個引數。

引數arguments是乙個物件,指定輸出到什麼地方。

(1)統計不同地方(『guangzhou,beijing,shanghai,shanxi』)的人的歲數總和

(2)統計不同地方(『guangzhou,beijing,shanghai,shanxi』)的人數總和

(3)統計不同地方(『guangzhou,beijing,shanghai,shanxi』)的人名列表

(4)統計不同地方(『guangzhou,beijing,shanghai,shanxi』),並且年齡在25歲(不包括25歲)以下的人名列表

MongoDB多條件分組聚合查詢

需要統計某一日期下不同活動不同渠道的呼叫量 db.collectionname.aggregate activitycode channel total mongodb的聚合管道將mongodb文件在乙個管道處理完畢後將結果傳遞給下乙個管道處理 db.collection name.aggregat...

分組聚合函式使用

1.mysql 的分組合併函式group concat group concat 會計算哪些行屬於同一組,將屬於同一組的列顯示出來。要返回哪些列,由函 數引數 就是欄位名 決定。分組必須有個標準,就是根據group by指定的列進行分組。例 select 分組字段,group concat 合併字段...

DataFrame分組和聚合

一 分組 1 語法 grouped df.groupby by columns name grouped是乙個dataframegroupby物件,是可迭代的 遍歷 grouped中的每乙個元素都是乙個元祖 元祖 索引 分組的值 分組之後的dataframe 2 取值 grouped.count 獲...