$pop
MongoDB 5.0 은(는) 10월을 기준으로 수명이 2024 종료됩니다. 이 버전의 문서는 더 이상 지원되지 않습니다. 배포서버 서버를 업그레이드 5.0 하려면 MongoDB 를 참조하세요. 60 업그레이드 절차.
정의
$pop
$pop
연산자는 배열의 첫 번째 또는 마지막 요소를 제거합니다.$pop
에-1
값을 전달하여 배열의 첫 번째 요소를 제거하고1
(을)를 전달하여 배열의 마지막 요소를 제거합니다.$pop
연산자의 형식은 다음과 같습니다.{ $pop: { <field>: <-1 | 1>, ... } } 내장된 문서 나 배열 에
<field>
을 지정하려면 점 표기법 을 사용합니다.
행동
MongoDB 5.0부터 업데이트 연산자는 문자열 기반 이름이 있는 문서 필드를 사전순으로 처리합니다. 숫자 이름이 있는 필드는 숫자 순서대로 처리됩니다. 자세한 내용은 업데이트 운영자 동작을 참조하십시오.
<field>
가 배열이 아니면 $pop
작업이 실패합니다.
$pop
연산자가 <field>
의 마지막 항목을 제거하면 <field>
는 빈 배열을 보유합니다.
MongoDB 5.0부터 빈 피연산자 표현식( { }
)과 함께 $pop
과 같은 업데이트 연산자를 사용할 때 mongod
에서 더 이상 오류가 발생하지 않습니다. 업데이트가 비어 있으면 변경 사항이 없으며 oplog 항목이 생성되지 않습니다(즉, 작업이 작동하지 않음을 의미합니다).
예시
배열의 첫 번째 항목 제거
students
컬렉션을 생성합니다.
db.students.insertOne( { _id: 1, scores: [ 8, 9, 10 ] } )
다음 예에서는 scores
배열에서 첫 번째 요소인 8을 제거합니다.
db.students.updateOne( { _id: 1 }, { $pop: { scores: -1 } } )
첫 번째 요소인 8이 scores
배열에서 제거되었습니다.
{ _id: 1, scores: [ 9, 10 ] }
배열의 마지막 항목 제거
다음 문서를 students
컬렉션에 추가합니다:
db.students.insertOne( { _id: 10, scores: [ 9, 10 ] } )
다음 예시에서는 $pop
표현식에 1
을 지정하여 scores
배열에서 마지막 요소인 10을 제거합니다.
db.students.updateOne( { _id: 10 }, { $pop: { scores: 1 } } )
마지막 요소인 10이 scores
배열에서 제거되었습니다.
{ _id: 10, scores: [ 9 ] }