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

鰻魚燒
Sep 15, 2022

--

接下來幾天,都會專注在各個資料型態相關的操作符,包含陣列、日期時間、文字,介紹有什麼好用的功能,今天先從陣列開始。

因為自己本身是寫JavaScript,看官方文件和陣列有關的操作符時,就在想其實很多語法都和JS很像,或是換一種寫法,但本質上還是做一樣的事。但大部分的操作符,其實在工作上我都沒有用過,個人比較偏好把資料庫的資料拉回server,然後再整理資料的格式。

Photo by Marcus Urbenz on Unsplash

因此接下來兩天講解,會以前後陣列資料的變化,讓大家感受一下每一個操作符,會對陣列資料進行怎樣的處理。

假設:我們有學生考試(test)的英文成績,將所有學生的成績寫進陣列內。

如果我們想要篩選出60分以上的成績資料出來,這時候就可以使用$filter幫我們篩選陣列資料,用法如下。

如果我們想要確認是否有人考滿分,這時候就可以使用$in,確認陣列資料是否包含特定元素,用法如下。

如果我們想要找出英文考最高和最低分的前三名,這時候就可以使用$maxN$minN這兩個操作符。其中n寫總共取幾個值,input要帶入陣列本身。

如果我們想要知道這次的英文考試,總共有多少學生參加,這時可以使用$size幫我們計算陣列長度。

如果有一些學生在考試當天請假,老師另外找時間讓他們補考後,想要把考試成績和補考成績合併再一起,就可以使用$concatArrays幫我們把兩個陣列合併再一起。

ps.如果想要了解其他的陣列操作符,可以參考官方文件

--

--

鰻魚燒

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