바닥코딩
집합 파이프라인 본문
mongoDB에서 우리는 Read 명령어들을 통해 원하는 document를 조회해보았습니다.
https://dkkim2318.tistory.com/126
그렇지만 프로그래밍을 진행하는 과정에서 단순히 데이터베이스의 원자료 값을 조회하는 경우 뿐만 아니라, 데이터베이스로부터 원하는 데이터로 가공하여 출력하는 경우가 빈번하게 발생합니다.
파이프라인이라는 말은, CS 관점에서는 한 데이터 처리 단계의 출력이 다음 단계의 입력으로 이어지는 형태의 연결구조를 의미합니다. mongoDB에선는 데이터를 가공하여 출력해야할 경우 파이프라인을 설계해 원하는 결과를 가공하는 것이 가능합니다. 이번 포스팅에서는 파이프라인을 설계하는 방법에 대해 다루어 보겠습니다
aggregate 함수
aggregate 함수는 파이프라인을 실행하기 위한 함수 입니다. mongoDB에서는 데이터를 가공하기 위해 aggregate명령을 통해 파이프라인을 인자로 받으며, 이를 지원하는 많은 option들이 존재합니다.
option이 워낙 많고, 경우의 수가 너무 많기 때문에 모든 option들을 설명은 생략하겠습니다. option들은 mongoDB 공식문서를 통해 확인하실 수 있습니다.
해당 포스트에서는 aggregate 함수의 형태와 noSQL에 비해 일반적으로 많이 사용 되는 SQL과의 option비교를 통해 간략히 알아보도록 하겠습니다.
Aggregation Framework Pipeline
mongoDB에서 aggregate를 통해 파이프라인을 설계할 때 일반적인 형태 입니다. 위 예시의 aggregate 함수는 배열을 인자를 가지며 각 인자에는 $match, $group와 같은 option이 설계 되어 있습니다
먼저 $match옵션으로 지정된 BSON stage를 통해 status가 A인 document를 필터링 하고 $group stage를 통해 cust_id의 그룹의 total이라는 amount 합계 결과 필드를 지정합니다. 위와 같이 mongoDB에서는 여러가지의 stage를 생성하고 해당 stage를 수행하여 가공된 최종 결과를 aggregate 함수를 통해 반환 합니다.
SQL 과 주요 Aggregate 명령어 비교
'데이터 베이스 > MongoDB' 카테고리의 다른 글
Replica set 이론 (0) | 2024.01.19 |
---|---|
MongoDB 명령어(Update & Delete) (0) | 2023.08.15 |
MongoDB 배열 (0) | 2023.08.14 |
논리, 비교 Query (0) | 2023.06.18 |
MongoDB 명령어(Read) (0) | 2023.06.18 |