문서 메뉴

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

$slice (애그리게이션)

이 페이지의 내용

  • 정의
  • 행동
  • 예제
$slice

배열의 하위 집합을 반환합니다.

$slice 에는 두 가지 구문 형식 중 하나가 있습니다.

다음 구문은 배열의 시작 또는 끝에서 요소를 반환합니다.

{ $slice: [ <array>, <n> ] }

다음 구문은 배열의 지정된 위치에서 요소를 반환합니다.

{ $slice: [ <array>, <position>, <n> ] }
피연산자
설명
<array>
배열로 리졸브될 수 있는 모든 유효한 표현식을 의미합니다.
<position>

선택 사항입니다. 정수로 해석되는 한 모든 유효한 표현식입니다.

  • 양수인 경우 $slice 은 배열의 시작부터 시작 위치를 결정합니다. <position> 이(가) 요소 수보다 크면 $slice 은(는) 빈 배열을 반환합니다.

  • 음수인 경우 $slice 은 배열의 끝에서부터 시작 위치를 결정합니다. <position> 의 절대값이 요소 수보다 큰 경우 시작 위치는 배열의 시작입니다.

<n>

정수로 해석되는 한 모든 유효한 표현식입니다. <position>이(가) 지정된 경우 <n>은(는) 양의 정수로 해석되어야 합니다.

  • 양수이면 $slice 은 배열의 처음 n 요소를 반환합니다. <position> 가 지정되면 $slice 는 해당 위치에서 시작하여 첫 n 요소를 반환합니다.

  • 음수인 경우 $slice 은 배열의 마지막 n 요소를 반환합니다. n <position> 이 지정된 경우 는 음수로 해석될 수 없습니다.

표현식에 대한 자세한 내용은 표현식 연산자를 참조하세요.

예제
결과
{ $slice: [ [ 1, 2, 3 ], 1, 1 ] }
[ 2 ]
{ $slice: [ [ 1, 2, 3 ], -2 ] }
[ 2, 3 ]
{ $slice: [ [ 1, 2, 3 ], 15, 2 ] }
[ ]
{ $slice: [ [ 1, 2, 3 ], -15, 2 ] }
[ 1, 2 ]

users라는 이름의 컬렉션에 다음 문서가 포함되어 있습니다.

{ "_id" : 1, "name" : "dave123", favorites: [ "chocolate", "cake", "butter", "apples" ] }
{ "_id" : 2, "name" : "li", favorites: [ "apples", "pudding", "pie" ] }
{ "_id" : 3, "name" : "ahn", favorites: [ "pears", "pecans", "chocolate", "cherries" ] }
{ "_id" : 4, "name" : "ty", favorites: [ "ice cream" ] }

다음 예시에서는 각 사용자에 대해 favorites 배열에서 최대 처음 세 개의 요소를 반환합니다.

db.users.aggregate([
{ $project: { name: 1, threeFavorites: { $slice: [ "$favorites", 3 ] } } }
])

이 연산은 다음과 같은 결과를 반환합니다.

{ "_id" : 1, "name" : "dave123", "threeFavorites" : [ "chocolate", "cake", "butter" ] }
{ "_id" : 2, "name" : "li", "threeFavorites" : [ "apples", "pudding", "pie" ] }
{ "_id" : 3, "name" : "ahn", "threeFavorites" : [ "pears", "pecans", "chocolate" ] }
{ "_id" : 4, "name" : "ty", "threeFavorites" : [ "ice cream" ] }
← sinh(집계)

이 페이지의 내용