본문 바로가기

MongoDB/MongoDB Aggregation 다루기5

[MongoDB Aggregation] 5. 주요 accumulator(2) - $min과 $max 사용하여 최솟값과 최댓값 찾기 반갑습니다!  이번 포스트에서는 $min과 $max를 살펴보겠습니다 샘플 코드에 대한 콘솔 출력 결과입니다 ^^$min과 $max를 동시에 수행하였습니다 먼저 stage1에서 $group 작업을 수행하였는데,기존 도큐먼트의 year 필드의 값을 기준으로 그룹화를 하였습니다그리고 imdb 필드의 값인 배열 타입의 데이터 중 rating 정보를 이용하였는데요 각 연도별로 개봉 영화들의 수가 상이할 것입니다 각 연도별 개봉 영화들 중에서 평점이 가장 적은 점수는 몇 점이고,평점이 가장 높은 점수는 몇 점일까요? 이 질문에 대한 조회 명령과 결과가 상기 캡쳐 이미지의 의미가 되겠습니다 ^^   콘솔창에 출력된 조회 결과를 보면 연도가 정렬이 안 되어 있는 것을 볼 수 있는데요나중에 $sort에 대해서 살펴볼 예.. 2024. 8. 20.
[MongoDB Aggregation] 4. 주요 accumulator(1) - $sum과 $avg 사용하여 합계과 평균 계산하기 반갑습니다! 이번 포스트에서는 주요 누산식(accumulator) 중 하나인$sum과 $avg에 대해서 알아보겠습니다   1. 값을 누적하여 합계 계산 : $sum 누산식들은 보통 $group 작업과 많이 사용됩니다 ^^샘플 코드를 살펴보면 stage1에 해당하는 작업으로 먼저 그룹화가 진행되었는데요_id 필드로 기준 삼을 컬럼은 year 컬럼이 되겠습니다 그럼 해당 영화들의 개봉 연도별로 그룹화가 진행되어 집계되는데요각 연도별로 개봉한 영화의 합이 어떻게 되는지에 대해서 totalMovies라는 이름의 컬럼을 만들어서$sum 키워드를 이용한 합계값을 매핑하는 명령어 구조가 되겠습니다 ^^ 해서 콘솔에 출력된 결과를 보면 _id 컬럼에는 영화의 개봉 연도 정보인 year의 값들이,그룹화 후 새로 만든 컬.. 2024. 8. 20.
[MongoDB Aggregation] 3. Aggregation의 $match와 $group 알아보기 반갑습니다! 저번 포스트에서 sample_mflix 데이터를 Import 했는데요 ^^해당 데이터베이스에는 여러 영화와 관련된 정보가 포함되어 있습니다영화 정보, 배우, 감독, 영화 리뷰 등에 대한 내용들인데요 ^^   그 중에서 실습에서 주요하게 사용할 컬렉션과 필드의 의미는 다음과 같습니다 1. movies 컬렉션①_id : 각 영화의 고유 식별 ID값②title : 영화의 제목③plot : 영화의 줄거리④genres : 영화의 장르(ex 액션, 코미디 등)⑤runtime : 영화의 상영 시간(분 단위)⑥cast : 영화 출연 배우⑦directors : 영화 감독⑧year : 영화가 개봉한 년도 2. comments 컬렉션①_id : 각 댓글의 고유 식별자②name : 댓글을 남긴 사용자의 이름③em.. 2024. 8. 20.
[MongoDB Aggregation] 2. MongoDB의 Aggregation 실습 전 준비사항 반갑습니다!  이번에는 실습을 위해서 특정 데이터를 Import 해보겠습니다 MongoDB의 Aggregation 프레임워크를 실습할 때 사용할 샘플 데이터입니다 ^^이 데이터는 MongoDB에서 기본적으로 제공해주는 데이터인데요Atlas를 이용할 때에도 처음 클러스터를 생성하면 해당 데이터베이스에약 130MB 분량의 sample_mfilx 데이터가 들어가있습니다 ^^    우선 사용할 Connection 이름에 마우스 포인터를 올려두고 오른클릭을 해서추가 메뉴를 조회해주세요 ^^   추가 메뉴 중 Import를 선택해주시면 되겠습니다!데이터를 추가할 때 대량의 데이터를 손쉽게 한 번에 삽입할 수 있습니다 ^^   Default로 JSON에 체크가 되어 있을겁니다우리는 Folder 형태로 데이터를 넣을 .. 2024. 8. 20.
[MongoDB Aggregation] 1. MongoDB의 Aggregation 프레임워크 이해하기 반갑습니다! 이번 포스트부터는 MongoDB의 Aggregation 프레임워크에 대해 살펴보도록 하겠습니다 ^^    1. Aggregation 프레임워크기존의 find()로도 많은 정보들을 조건 조회할 수 있었지만,find()만으로는 원하는 데이터로 가공하는데에 어려움이 있습니다빅데이터를 다루려면 새로운 데이터 가공 방식이 필요한데요 이를 위해서 MongoDB에서는 Aggregation Framework(집계 프레임워크)를 제공합니다 ^^MongoDB의 Aggregation Framework는 파이프라인(Pipeline) 개념을 모델로 합니다파이프 라인이란, 이전 단계의 연산 결과를 다음 단계의 연산에 이용하는 것을 의미합니다!Unix의 pipe와 같은 방식으로 데이터를 처리하는 방식인데요 ^^Docu.. 2024. 8. 20.