หลังจากครั้งที่แล้ว เราได้ลองใช้ MongoDB Charts ไปแล้ว จะเห็นว่าบางข้อมูล เราไม่ได้ต้องการมากขนาดนั้น เราเพียงต้องการแค่บางส่วนของข้อมูล ซึ่งวิธีการนั้นก็คือการ query ข้อมูลที่เราต้องการ ในที่นี้เราจะมาทำการ query ข้อมูลผ่านการ aggregation ซึ่งทาง Atlas ได้ให้เรามานั่นเอง
เริ่มแรกให้ไปที่ database ของเราแล้วก็เลือก Aggregation
เราสามารถ add stage และใส่ functions ได้ เช่น หาโรงแรมที่อยู่ในฮ่องกงโดยการเลือก $match และใส่โค้ดตามในรูป
หรือจะดูว่าจำนวนโรงแรมในแต่ละประเทศมีเท่าไหร่ โดยการ $group และทำการสร้าง count ขึ้นมาตามในรูป
เรายังสามารถหาโรงแรมที่มีจำนวน review มากกว่า 100 โดยการ $addFields และใส่ function $gt ลงไปตามในรูป ซึ่ง value จะเป็น true กับ false จากนั้นก็ $match ในอีก stage นึง
ในที่นี้ เราจะหาโรงแรมที่ราคาต่ำกว่าหรือเท่ากับ 100 และมาทำ charts โดยทำเหมือนกับรูปด้านบน เพียงแต่เราจะเลือก price และใส่ function $lte เข้าไป
จากนั้นก็ทำการ export pipeline code เพื่อจะนำไปใส่ใน Charts
Copy pipeline ทางด้านขวาไป
เนื่องจากถ้าเรานำ pipeline code ไปใส่ใน data source เดิมที่เคยใส่มาแล้ว จะทำให้ charts ที่เราเคยทำผิดเพี้ยนไป ดังนั้นถ้าเราจะทำ chart อันใหม่เราก็ควรเพิ่ม data source มาอีกชุดนึง
เปลี่ยนชื่อ data source อันใหม่ จะได้ไม่สับสน
กด add pipeline เพื่อใส่ pipeline code ที่เรา copy มาก่อนหน้านี้
เลือก data source แล้วก็นำไปใช้สร้าง chart อันใหม่ได้เลย
เสร็จไปแล้วกับการ aggregation ใน Atlas ยังมีอีกหลาย function เลยที่ยังไม่ได้ใช้ เราก็สามารถไปเล่นเพิ่มอีกได้เช่นกัน
ผู้เขียน Tanapat Limtemsap
วันที่ 22 ตุลาคม พ.ศ. 2564