หลังจากครั้งที่แล้ว เราได้ลองใช้ MongoDB Charts ไปแล้ว จะเห็นว่าบางข้อมูล เราไม่ได้ต้องการมากขนาดนั้น เราเพียงต้องการแค่บางส่วนของข้อมูล ซึ่งวิธีการนั้นก็คือการ query ข้อมูลที่เราต้องการ ในที่นี้เราจะมาทำการ query ข้อมูลผ่านการ aggregation ซึ่งทาง Atlas ได้ให้เรามานั่นเอง

เริ่มแรกให้ไปที่ database ของเราแล้วก็เลือก Aggregation

Aggregation database ใน MongoDB Atlas

เราสามารถ add stage และใส่ functions ได้ เช่น หาโรงแรมที่อยู่ในฮ่องกงโดยการเลือก $match และใส่โค้ดตามในรูป

Aggregation database ใน MongoDB Atlas

หรือจะดูว่าจำนวนโรงแรมในแต่ละประเทศมีเท่าไหร่ โดยการ $group และทำการสร้าง count ขึ้นมาตามในรูป

Aggregation database ใน MongoDB Atlas

เรายังสามารถหาโรงแรมที่มีจำนวน review มากกว่า 100 โดยการ $addFields และใส่ function $gt ลงไปตามในรูป ซึ่ง value จะเป็น true กับ false จากนั้นก็ $match ในอีก stage นึง

Aggregation database ใน MongoDB Atlas

ในที่นี้ เราจะหาโรงแรมที่ราคาต่ำกว่าหรือเท่ากับ 100 และมาทำ charts โดยทำเหมือนกับรูปด้านบน เพียงแต่เราจะเลือก price และใส่ function $lte เข้าไป

Aggregation database ใน MongoDB Atlas

จากนั้นก็ทำการ export pipeline code เพื่อจะนำไปใส่ใน Charts

Aggregation database ใน MongoDB Atlas

Copy pipeline ทางด้านขวาไป

Aggregation database ใน MongoDB Atlas

เนื่องจากถ้าเรานำ pipeline code ไปใส่ใน data source เดิมที่เคยใส่มาแล้ว จะทำให้ charts ที่เราเคยทำผิดเพี้ยนไป ดังนั้นถ้าเราจะทำ chart อันใหม่เราก็ควรเพิ่ม data source มาอีกชุดนึง

Aggregation database ใน MongoDB Atlas
Aggregation database ใน MongoDB Atlas

เปลี่ยนชื่อ data source อันใหม่ จะได้ไม่สับสน

Aggregation database ใน MongoDB Atlas

กด add pipeline เพื่อใส่ pipeline code ที่เรา copy มาก่อนหน้านี้

Aggregation database ใน MongoDB Atlas

เลือก data source แล้วก็นำไปใช้สร้าง chart อันใหม่ได้เลย

Aggregation database ใน MongoDB Atlas

เสร็จไปแล้วกับการ aggregation ใน Atlas ยังมีอีกหลาย function เลยที่ยังไม่ได้ใช้ เราก็สามารถไปเล่นเพิ่มอีกได้เช่นกัน

ผู้เขียน Tanapat Limtemsap

วันที่ 22 ตุลาคม พ.ศ. 2564