대용량 처리 이해/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