맵 축소
이 페이지의 내용
참고
대안으로서의 집계 파이프라인
MongoDB 5.0부터 맵 리듀스는 더 이상 사용되지 않습니다.
맵 리듀스 대신 집계 파이프라인을 사용해야 합니다. 집계 파이프라인은 맵 리듀스보다 성능과 유용성 측면에서 더 우수합니다.
4}
$group
$merge
, 등과 같은 집계 파이프라인 단계를 사용하여 맵 축소 연산을 다시 작성할 수 있습니다.사용자 지정 기능이 필요한 맵 리듀스 작업의 경우
$accumulator
및$function
집계 연산자를 사용할 수 있습니다. 이러한 연산자를 사용하여 JavaScript에서 사용자 지정 집계 표현식을 정의할 수 있습니다.
맵 리듀스 대안으로서의 집계 파이프라인 예시는 다음을 참조하세요.
MongoDB Atlas에서 호스팅되는 배포에 대해 UI에서 집계 파이프라인을 실행할 수 있습니다.
맵 리듀스는 대량의 데이터를 유용한 집계 결과로 압축하기 위한 데이터 처리 패러다임입니다. 맵 리듀스 작업을 수행하기 위해 MongoDB는 mapReduce
데이터베이스 명령을 제공합니다.
다음 맵 리듀스 작업을 고려해 보세요:
이 맵 리듀스 작업에서 MongoDB는 각 입력 문서(즉, 쿼리 조건과 일치하는 컬렉션 내의 문서) 에 맵 단계를 적용합니다. 맵 함수는 키-값 쌍을 출력합니다. 여러 값이 있는 키의 경우 MongoDB는 집계한 데이터를 수집하고 압축하는 reduce 단계를 적용합니다. 그런 다음 MongoDB는 결과를 컬렉션에 저장합니다. 선택적으로, reduce 함수의 출력은 finalize 함수를 통과하여 집계 결과를 더 압축하거나 처리할 수 있습니다.
MongoDB의 모든 맵 리듀스 함수는 JavaScript이며 mongod
프로세스 내에서 실행됩니다. 맵 리듀스 작업은 단일 컬렉션의 문서를 입력으로 사용하고 매핑 단계를 시작하기 전에 임의의 정렬 및 제한을 수행할 수 있습니다. mapReduce
는 맵 리듀스 작업의 결과를 문서로 반환하거나 결과를 컬렉션에 쓸 수 있습니다.
참고
맵 리듀스는 MongoDB Atlas 무료 클러스터 및 MongoDB Atlas 서버리스 인스턴스에서 지원되지 않습니다.
맵-리듀스 JavaScript 함수
MongoDB에서 맵 리듀스 작업은 사용자 정의 JavaScript 함수를 사용하여 값을 키에 매핑하거나 연결합니다. 키에 매핑된 값이 여러 개 있는 경우 이 작업은 키 값을 단일 객체로 줄입니다 .
사용자 지정 JavaScript 함수를 사용하면 맵 리듀스 작업을 유연하게 수행할 수 있습니다. 예를 들어, 문서를 처리할 때 맵 함수는 하나 이상의 키와 값 매핑을 생성하거나 매핑을 생성하지 않을 수 있습니다. 맵 리듀스 작업에서는 사용자 지정 JavaScript 함수를 사용하여 매핑 끝에서 결과를 최종 수정하고 추가 계산 수행과 같은 작업을 축소할 수 있습니다.
맵 리듀스 결과
MongoDB에서 맵 리듀스 작업은 결과를 컬렉션에 쓰거나 결과를 인라인으로 반환할 수 있습니다. 맵 리듀스 출력을 컬렉션에 쓰는 경우 동일한 입력 컬렉션에서 새 결과를 이전 결과와 바꾸기, 병합 또는 축소하는 후속 맵 축소 작업을 수행할 수 있습니다. 자세한 내용과 예시는 mapReduce
및 증분 맵 리듀스 수행하기를 참조하세요.
맵 리듀스 작업의 결과를 인라인으로 반환할 때 결과 문서는 BSON 문서 크기 제한(현재 16메가바이트) 내에 있어야 합니다. 맵 리듀스 작업의 한계 및 제한 사항에 대한 자세한 내용은 mapReduce 참조 페이지를 참조하세요.
샤드 컬렉션
MongoDB는 샤드 컬렉션에 대한 맵 리듀스 작업을 지원합니다.
조회수
뷰는 맵 축소 작업을 지원하지 않습니다.