정의
창 에 있는 문서에서 연결된 배열 값의 배열 반환합니다.
참고
명확화
이 페이지에서는 창 함수로 사용되는 경우의 $concatArrays에 대해 설명합니다.
다음과 같은 다른 컨텍스트에서도 $concatArrays를 사용할 수 있습니다.
$concatArrays (accumulator)문서 그룹 에서 필드 의 배열 값을 연결합니다.$concatArrays (expression), 단일 문서 내에서 두 개 이상의 배열을 단일 배열 로 연결합니다.
구문
{ $setWindowFields: { ... output: { <field>: { $concatArrays: "<array field>" } } } }
행동
null 이거나 null 로 해석되는 인수는 결과에 포함됩니다. 누락된 필드 를 참조하는 인수는 결과에 포함되지 않습니다.
예시
다음 예시에서는 sample_mflix 샘플 데이터 집합의 movies 컬렉션을 사용합니다. 배포서버에 이 데이터세트를 로드하는 방법은 샘플 데이터세트 로드를 참조하세요.
이 예시 $setWindowFields를 사용하여 출시하다 연도별로 영화를 분할하고 각 파티션 내에서 제목별로 정렬된 genres 배열을 연결합니다. 각 문서 현재 문서 통해 파티션의 첫 번째 동영상에서 genres 배열의 연결을 수신합니다.
db.movies.aggregate( [ { $match: { year: { $in: [1914, 1915] } } }, { $setWindowFields: { partitionBy: { year: "$year" }, sortBy: { title: 1 }, output: { combinedGenres: { $concatArrays: "$genres", window: { documents: ["unbounded", "current"] } } } } }, { $project: { _id: 0, year: 1, title: 1, combinedGenres: 1 } } ] )
이전 파이프라인:
$setWindowFields를 사용하여partitionBy가 있는year별로 영화를 분할하고 각 파티션을title별로 정렬합니다. 이 단계는[ "unbounded", "current" ]의 문서 창 에서$concatArrays을genres필드 에 적용합니다.combinedGenres필드 파티션의 첫 번째 영화부터 현재 문서 까지 연결된 장르가 저장됩니다.$project를 사용하여 출력에year,title및combinedGenres를 포함합니다.
combinedGenres 배열 각 문서 해당 genres 배열 제공함에 따라 각 파티션 내에서 커집니다.