被MongoDB用Aggregate暴打的後端小菜雞日記-day8-用$group將資料分組(下)

鰻魚燒
Sep 7, 2022

--

今天將延續昨天的主題,繼續講可以和$group一起搭配的操作符。

再開始之前,額外提醒一下,前面文章提到的操作符,例如:$max其實可以用在很多地方,不只有在$group裡面,想了解更多使用方式,真的很推薦到MongoDB的官方文件看一下。

Photo by Clark Street Mercantile on Unsplash

接下來進入正題
假設商店有A、B、C三種商品,因為不同的時間點,商店推出不同的折扣優待,所以商品的價格是會有變動的,因此有以下的訂單資料。

情境一: 老闆想要計算每一種商品,在2019年被賣出多少次,這時可以使用$count來計算分組後每一組有幾筆資料。

情境二:老闆看到我們幫他算的資料,覺得少了類別,他要對帳很不方便,希望我們幫他加上,這時候就可以使用$first回傳分組資料中,第一筆資料的欄位值,這個操作符很適合用在保留分組後,原本共有的資料欄位。

情境三:這時老闆又開了新的需求,希望我們能把每一次交易的時間都寫進去,這時候就可以使用$push把原本分組前每一筆資料的特定欄位,加入陣列內來紀錄。

ps.$group介紹了這麼多,其實還有其他操作符沒有介紹到,如果想要再更深入的了解,請參考官方文件

--

--

鰻魚燒

剛轉職成後端工程師的小菜雞,分享自己的學習筆記