문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

맵 축소

이 페이지의 내용

  • 맵-리듀스 JavaScript 함수
  • 맵 리듀스 결과
  • 샤드 컬렉션
  • 조회수

참고

대안으로서의 애그리게이션 파이프라인

MongoDB 5 부터 시작.0 맵 리듀스 는 더 이상 사용되지 않습니다.

맵 리듀스 대안으로서의 애그리게이션 파이프라인 예시는 다음을 참조하세요.

맵 리듀스는 대량의 데이터를 유용한 집계 결과로 압축하기 위한 데이터 처리 패러다임입니다. 맵 리듀스 작업을 수행하기 위해 MongoDB는 mapReduce 데이터베이스 명령을 제공합니다.

다음 맵 리듀스 작업을 고려해 보세요:

주석이 달린 맵 리듀스 작업의 다이어그램입니다.

이 맵 리듀스 작업에서 MongoDB는 각 입력 문서(즉, 쿼리 조건과 일치하는 컬렉션 내의 문서) 에 단계를 적용합니다. 맵 함수는 키-값 쌍을 출력합니다. 여러 값이 있는 키의 경우 MongoDB는 애그리게이션한 데이터를 수집하고 압축하는 reduce 단계를 적용합니다. 그런 다음 MongoDB는 결과를 컬렉션에 저장합니다. 선택적으로, reduce 함수의 출력은 finalize 함수를 통과하여 애그리게이션 결과를 더 압축하거나 처리할 수 있습니다.

MongoDB의 모든 맵 리듀스 함수는 JavaScript이며 mongod 프로세스 내에서 실행됩니다. 맵 리듀스 작업은 단일 컬렉션의 문서를 입력으로 사용하고 매핑 단계를 시작하기 전에 임의의 정렬 및 제한을 수행할 수 있습니다. mapReduce는 맵 리듀스 작업의 결과를 문서로 반환하거나 결과를 컬렉션에 쓸 수 있습니다.

참고

맵 리듀스는 MongoDB Atlas 무료 클러스터 및 MongoDB Atlas 서버리스 인스턴스에서 지원되지 않습니다.

MongoDB에서 맵 리듀스 작업은 사용자 정의 JavaScript 함수를 사용하여 값을 키에 매핑하거나 연결합니다. 키에 매핑된 값이 여러 개 있는 경우 이 작업은 키 값을 단일 객체로 줄입니다 .

사용자 지정 JavaScript 함수를 사용하면 맵 리듀스 작업을 유연하게 수행할 수 있습니다. 예를 들어, 문서를 처리할 때 맵 함수는 하나 이상의 키와 값 매핑을 생성하거나 매핑을 생성하지 않을 수 있습니다. 맵 리듀스 작업에서는 사용자 지정 JavaScript 함수를 사용하여 매핑 끝에서 결과를 최종 수정하고 추가 계산 수행과 같은 작업을 축소할 수 있습니다.

MongoDB에서 맵 리듀스 작업은 결과를 컬렉션에 쓰거나 결과를 인라인으로 반환할 수 있습니다. 맵 리듀스 출력을 컬렉션에 쓰는 경우 동일한 입력 컬렉션에서 새 결과를 이전 결과와 바꾸기, 병합 또는 축소하는 후속 맵 축소 작업을 수행할 수 있습니다. 자세한 내용과 예제는 mapReduce증분 맵 리듀스 수행하기를 참조하세요.

맵 리듀스 작업의 결과를 인라인으로 반환할 때 결과 문서는 BSON 문서 크기 제한(현재 16메가바이트) 내에 있어야 합니다. 맵 리듀스 작업의 한계 및 제한 사항에 대한 자세한 내용은 mapReduce 참조 페이지를 참조하세요.

MongoDB는 샤드 컬렉션에 대한 맵 리듀스 작업을 지원합니다.

그러나 버전 4.2부터 MongoDB는 맵 리듀스 옵션을 사용한 새 샤드 컬렉션 생성 및 맵 리듀스를 위한 sharded 옵션 사용을 더 이상 지원하지 않습니다. 샤드 컬렉션으로 출력하려면 먼저 샤드 컬렉션을 생성합니다. 또한 MongoDB 4.2는 기존 샤드 컬렉션 교체를 더 이상 지원하지 않습니다.

맵 리듀스 및 샤드 컬렉션을 참조하세요.

뷰는 맵 축소 작업을 지원하지 않습니다.

← 애그리게이션 명령 비교