2022. 11. 1. 12:26ㆍDB/MongoDB
- $unwind 스테이지 : 하나의 도큐먼트에 있는 배열 요소들을 분리하여 각각의 도큐먼트에 분배하는 역할 수행
배열의 요소를 분리하여 도큐먼트를 만들 때 배열의 순서(인덱스)를 기록하는 방법이 있다.
$unwind{
path:<field path> //필드 이름과 경로
includeArrayIndex : <string> //새로 생성할 인덱스 필드 이름
preserveNullAndEmptyArrays : <Boolean> //true이면 빈 요소도 포함, false이면 빈 요소 불포함(default는 false)
}
- $out 스테이지 : 입력받은 도큐먼트를 컬렉션으로 저장하는 역할
- $sort, $limit, $skip
고급 스테이지
$bucket : 도큐먼트를 범위에 따라 그룹화한다.
$bucketAuto : 그룹의 개수에 따라 자동 그룹핑
$addFields : $project 스테이지에서 새로운 필드 추가
$facet : 각 필드에 대한 서브 파이프라인을 수행해서 배열로 저장
$lookup : MongoDB에서의 조인 연산
- $bucket 스테이지
rating 필드를 기준으로, (2), (3,4) 구간으로 묶고 그 외의 도큐먼트들은 "Other"에 묶는다. 출력시 묶인 도큐먼트의 수와 user_id를 출력
- $bucketAuto 스테이지 : 출력으로 _id의 min값과 max값 그리고 count의 값을 자동으로 출력.
- $addFields 스테이지
- $facet 스테이지 : 하나의 쿼리로 다양한 기준의 그룹핑을 수행할 때 사용. $facet 쿼리의 각 서브 파이프라인은 하나의 서브 스테이지를 반드시 가져야한다.
- $lookup 스테이지
from : 조인할 도큐먼트 결정
localField : 넘겨받은 도큐먼트의 어떤 필드를 from에서 정한 도큐먼트의 필드와 매칭할지 결정
foreignField : from에서 선택한 도큐먼트에서 어떤 필드를 localField에서 정한 필드와 매칭할지 결정
as : from에서 정한 도큐먼트로부터 매칭되어 가져온 데이터를 여기서 정한 데이터 필드의 배열 안에 넣는다.
- $replaceRoot : $project 스테이지와 유사하게 도큐먼트의 모양을 바꾸는 스테이지
- $sample : 주어진 도큐먼트들을 랜덤하게 고르는 스테이지
- $sortByCount 스테이지 : 그룹화한 다음, 도큐먼트의 숫자를 세어 표시하고 내림차순으로 정렬
'DB > MongoDB' 카테고리의 다른 글
MongoDB의 트랜잭션 (0) | 2022.11.14 |
---|---|
집계 명령어(3) (0) | 2022.11.14 |
집계 명령어(1) (0) | 2022.11.01 |
쿼리 작성하기(2) (0) | 2022.10.31 |
쿼리 작성하기(1) (0) | 2022.10.31 |