대용량 처리 이해/MongoDB

Aggregation

훈지런 2023. 1. 29. 18:15

Aggregation이란?


  • Collection 데이터를 변환하거나 분석하기 위해 사용하는 집계 프레임워크
  • Aggregation은 Find함수로 처리할 수 없는, SQL의 Group By 와 Join 구문 같은 복잡한 데이터 분석 기능들을 제공한다.
  • Aggregation 프레임워크는 Pipeline형태를 갖춘다. (Linux Pipeline 구문과 동일한 방식)
  • MongoDB 2.2 부터 제공되었고 이전에는 Map Reduce를 사용했다.
SELECT 
    productName
    ,SUM(quantity) AS sumQuantity
FROM orders
WHERE status = 'urgent'
GROUP BY productName;
db.orders.aggregate([
    {$match: {status:'urgent'}},
    {$group:{
        _id: '$productName',
        sumQuantity: {$sum: '$quantity'}
    }}
])

데이터 가공 순서
스트림형태로 가공

flowchart LR input --> $match $match --> $group $group --> $sort $sort --> output

'대용량 처리 이해 > MongoDB' 카테고리의 다른 글

Read Preference  (0) 2023.02.16
일관성 제어  (0) 2023.02.15
Sharded Cluster  (0) 2023.01.28
Replica Set  (0) 2023.01.01
MongoDB 구조  (0) 2022.12.31