배열에서 요소 제거
요소를 추가할 수 있는 것처럼 제거할 수도 있어야 합니다. MongoDB 는 이 목적을 위해 여러 연산자를 제공합니다. 이 단계에서는 $pull을 사용하여 값으로 요소를 제거하고 $pop을 사용하여 위치로 요소를 제거하는 방법을 배웁니다.
값에 따라 배열에서 특정 요소를 제거하려면 $pull 연산자를 사용합니다. Alice 의 강좌 목록에서 "Physics"를 제거해 보겠습니다.
db.students.updateOne(
{ name: "Alice Johnson" },
{ $pull: { courses: "Physics" } }
)
이 명령은 Alice 의 문서를 찾아 그녀의 courses 배열에서 "Physics"의 모든 발생을 제거합니다. 결과를 확인해 보세요.
db.students.find({ name: "Alice Johnson" }).pretty()
출력에는 "Physics"가 더 이상 배열에 없음을 보여줍니다.
[
{
_id: ObjectId("..."),
name: 'Alice Johnson',
age: 22,
courses: [ 'Mathematics', 'Computer Science', 'Data Science' ]
}
]
목록의 값과 일치하는 여러 요소를 제거하려면 $pullAll 연산자를 사용할 수 있습니다. Bob 의 활동에서 "Chess Club"과 "Debate Team"을 모두 제거해 보겠습니다.
db.students.updateOne(
{ name: "Bob Smith" },
{ $pullAll: { activities: ["Chess Club", "Debate Team"] } }
)
Bob 의 문서에 대한 업데이트를 확인해 보세요.
db.students.find({ name: "Bob Smith" }).pretty()
출력은 지정된 활동이 제거되었음을 확인합니다.
[
{
_id: ObjectId("..."),
name: 'Bob Smith',
grades: [ 95, 87, 92 ],
activities: [ 'Robotics Club', 'Swimming Team' ]
}
]
배열의 시작 또는 끝에서 요소를 제거해야 하는 경우 $pop 연산자를 사용할 수 있습니다. 마지막 요소를 제거하려면 1을 사용하고 첫 번째 요소를 제거하려면 -1을 사용합니다. Alice 의 목록에서 마지막 강좌를 제거해 보겠습니다.
db.students.updateOne(
{ name: "Alice Johnson" },
{ $pop: { courses: 1 } }
)
Alice 의 강좌의 최종 상태를 보겠습니다.
db.students.find({ name: "Alice Johnson" }).pretty()
출력에는 마지막 요소인 "Data Science"가 제거되었음을 보여줍니다.
[
{
_id: ObjectId("..."),
name: 'Alice Johnson',
age: 22,
courses: [ 'Mathematics', 'Computer Science' ]
}
]