정의
$slice배열의 하위 집합을 반환합니다.
참고
명확화
$push을(를) 사용하여 업데이트하는 동안 배열 크기를 제한하는 방법에 대한 자세한 내용은$slice업데이트 수정자를 참조하세요.find 명령의 프로젝션 연산자에 대한 정보는
$slice프로젝션 연산자를 참조하세요.$slice에는 두 가지 구문 형식 중 하나가 있습니다.다음 구문은 배열의 시작 또는 끝에서 요소를 반환합니다.
{ $slice: [ <array expression>, <n> ] } 다음 구문은 배열의 지정된 위치에서 요소를 반환합니다.
{ $slice: [ <array expression>, <position>, <n> ] } 피연산자설명<array expression>배열 로 해석되는 경우 모든 유효한 표현식 .
<position><n>표현식에 대한 자세한 내용은 표현식을 참조하세요 .
행동
예시 | 결과 | ||
|---|---|---|---|
| | ||
| | ||
| | ||
| |
예시
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" ] } ]