LESSON 0: INTRODUCTION AND AGGREGATION CONCEPTS
Atlas Requirements
- brew 명령어 통해 mongodb 설치
- mongosh 명령어 통해 mongodb 연결 및 컬렉션 확인
The Concept of Pipelines ( 파이프라인 개념 )
- 파이프라인 = 단계의 구성
ex) 공장의 컨베이어 벨트 ( 각 단계 마다 작업을 통해 원하는 결과를 도출 )
- 집계 프레임워크는 데이터를 필터링하고 변환할 수 있는 여러 단계를 제공한다.
Aggregation Structure and Syntax
LESSON 1: BASIC AGGREGATION - $MATCH AND $PROJECT
$match: Filtering documents
- $match 단계에서는 필터를 구성하고, 그 기준을 충족하는 문서만 다음 파이프라인에 전달된다.
- $match 는 여러번 사용될 수 있다.
- mongoDB find 쿼리 연산자들을 사용한다. (비교,논리,배열 연산자 사용가능 / $where 은 사용불가)
- $match 가 첫번째 단계일 경우, 인덱스를 활용하여 처리 속도를 높일 수 있다. (초기 제공 되어야함)
Shaping documents with $project
- $project 는 필드를 선택적으로 제거하고 유지할 수 있을 뿐만 아니라 기존 필드 값을 다시 할당하고 완전히 새로운 필드를 파생할 수 있다.
ex) java stream map (?)
- $project 는 원하는 만큼 사용할 수 있으며, 필요하지 않는 필드를 잘라내는데 사용해야 한다.
- _id 필드는 정의하지 않아도 무조건 출력된다.
참고 : https://learn.mongodb.com/courses/m121-the-mongodb-aggregation-framework