AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

$slice(표현식 연산자)

$slice

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

참고

명확화

$push 을(를) 사용하여 업데이트하는 동안 배열 크기를 제한하는 방법에 대한 자세한 내용은 $slice 업데이트 수정자를 참조하세요.

find 명령의 프로젝션 연산자에 대한 정보는 $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 개 요소를 반환합니다. <position>이 지정된 경우 n은 음수로 해석될 수 없습니다.

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

예시
결과
{ $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라는 이름의 컬렉션에 다음 문서가 포함되어 있습니다.

db.users.insertMany( [
{ _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" ] }
]

이 페이지의 내용