被MongoDB用Aggregate暴打的後端小菜雞日記-day17-陣列操作符(中)

鰻魚燒
Sep 16, 2022

--

今天繼續昨天的主題,講解陣列操作符的部分,比較不一樣的是今天用來舉例的陣列資料,會比昨天在複雜一點,同時也會用比較多不一樣的範例,來講解不同的的與法,因為每種語法適用的場景比較不一樣。

Photo by Patrick Tomasso on Unsplash

假設:我們現在考試資訊的collection,專門紀錄每一科考試學生的平均分數、應考人數、考試日期,資料的形式是陣列內再包一層陣列,第二層陣列只會有兩個item,資料格式如下。

如果我們這時要做資料型態的轉換,將陣列轉換成物件,可以使用$arrayToObject這個指定,後面接要轉換的陣列。轉變的規則會是,第二層陣列第一個item會被當成物件的key值,第二個item會被當成物件的value值。

ps.如果想要將物件轉變成陣列,可以改用$objectToArray

第二個範例要來介紹,如何對陣列資料進行排序。
例如:我們現在英文的成績是寫在陣列內,裡面除了成績,還有紀錄學生的姓名,資料如下。

我們希望可以按照成績(sort)進行排序,這時可以使用以下指令。

延續上面範例的資料,如果我們想幫每位學生的英文成績,都加10分,這時候可以使用$map,它和JS的Array.prototype.map()語法是一樣的概念,可以操作陣列每一個元素,轉換成我們想要的資料,並且回傳一個新的陣列。

不得不說陣列相關的操作符還真多,剩下五個明天繼續 (๑•̀ㅂ•́)و✧

--

--

鰻魚燒

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