MongoDB - 문서 삭제
안녕하세요, 미래의 데이터베이스 마법사 여러분! 오늘 우리는 MongoDB에서 문서를 삭제하는 흥미로운 세상으로 뛰어들어 보겠습니다. 초보자라도 걱정 마세요 - 우리는 기본에서 시작하여 차근차근 올라갈 테니까요. 이 수업이 끝나면 프로처럼 문서를 삭제할 수 있을 거예요! 시작해 보겠습니다!
MongoDB에서 문서 삭제 이해하기
자, 구체적인 내용으로 들어가기 전에 MongoDB에서 문서 삭제가 무엇을 의미하는지 이해해 보겠습니다. 대형 레고 상자(그것은 MongoDB 데이터베이스입니다)를 가지고 있다고 상상해 보세요. 각 레고 블록은 문서입니다. 때로는 특정 블록을 상자에서 제거하고 싶을 수 있습니다. 오늘 배우는 내용은 바로 이거입니다 - MongoDB 데이터베이스에서 문서를 제거하는 방법입니다.
remove() 메서드
MongoDB에서 문서를 삭제하는 주요 메서드는 remove()
메서드입니다. 데이터베이스의 청소기처럼 생각해 보세요 - 더 이상 원하지 않는 문서를 흡입합니다!
기본 문법은 다음과 같습니다:
db.collection.remove(query, justOne)
이를 구분해 보겠습니다:
-
db.collection
은 문서를 삭제할 컬렉션입니다. -
query
는 삭제할 문서의 선택 기준입니다. -
justOne
은 선택 사항입니다 (곧 이에 대해 설명하겠습니다).
예제 1: 기준에 맞는 모든 문서 제거
예를 들어, students
컬렉션에 있고 18세인 모든 학생을 삭제하고 싶습니다. 다음과 같이 합니다:
db.students.remove({age: 18})
이 명령은 MongoDB에게 "students 컬렉션으로 가서 나이가 18인 모든 문서를 삭제하라"고 말합니다. 간단하죠?
예제 2: 다중 기준으로 문서 제거
보다 구체적으로 하고 싶다면 어떻게 하나요? 18세인 'John'이라는 이름의 모든 학생을 삭제해 보겠습니다:
db.students.remove({age: 18, name: "John"})
이제 MongoDB는 두 기준 모두에 맞는 문서만 삭제합니다.
단일 문서 제거
때로는 여러 개의 문서가 기준에 맞지만 단일 문서만 삭제하고 싶을 수 있습니다. 이때 justOne
매개변수가 유용합니다!
예제 3: 단일 문서 제거
18세인 단일 학생만 삭제해 보겠습니다:
db.students.remove({age: 18}, true)
여기서 true
는 justOne
매개변수입니다. MongoDB에게 첫 번째로 찾은 일치하는 문서를 삭제하고 멈추도록 말합니다.
모든 문서 제거
컬렉션에서 모든 문서를 제거하고 싶다면 MongoDB는 이를 지원합니다!
예제 4: 모든 문서 제거
students
컬렉션에서 모든 문서를 삭제하려면:
db.students.remove({})
이 명령은 매우 주의가 필요합니다! 전체 레고 상자를 비우는 것과 같습니다. 이 명령을 실행하기 전에 정말로 그럴 의도인지 확인하세요.
고급 삭제 기술
기본 내용을 다루고 나서, 보다 고급 기술을 살펴보겠습니다.
예제 5: 연산자를 사용한 제거 쿼리
MongoDB는 우리가 보다 복잡한 제거를 위해 연산자를 사용할 수 있도록 합니다. 예를 들어, 20세 이상인 모든 학생을 삭제하고 싶습니다:
db.students.remove({age: {$gt: 20}})
여기서 $gt
는 "greater than"을 의미합니다. 이 명령은 나이가 20 이상인 모든 문서를 삭제합니다.
예제 6: 배열 내용을 기준으로 문서 제거
배열 필드가 있는 경우, 그 내용을 기준으로 문서를 삭제할 수 있습니다. 예를 들어, 주제 배열에 "Math"가 포함된 모든 학생을 삭제하고 싶습니다:
db.students.remove({subjects: "Math"})
이 명령은 "Math"가 주제 배열의 하나인 모든 문서를 삭제합니다.
좋은 관행과 팁
- 삭제 전에 항상 쿼리를 다시 확인하세요: 실수로 더 많은 것을 삭제할 수 있습니다. 항상 쿼리를 확인하세요!
-
findOne()
을 사용한 후remove()
를 사용하세요: 쿼리에 대해 확신이 없다면, 같은 기준으로findOne()
을 사용하여 어떤 문서가 삭제될지 확인하세요. -
deleteOne()
과deleteMany()
를 사용하세요: 이는 몇 개의 문서를 삭제할지 더 명확하게 합니다. -
빈 쿼리에 주의하세요: 빈 쿼리
{}
는 모든 문서를 일치시킵니다! -
limit()
을 사용하여 안전을 지키세요: 너무 많은 문서를 삭제할까봐 걱정된다면,limit()
을 사용하여 제거할 수를 제한하세요.
메서드 요약
이제 우리가 논의한 삭제 메서드의 빠른 참조 표를 제공하겠습니다:
메서드 | 설명 | 예제 |
---|---|---|
remove() |
쿼리에 맞는 모든 문서 제거 | db.collection.remove({age: 18}) |
remove() with justOne
|
쿼리에 맞는 단일 문서 제거 | db.collection.remove({age: 18}, true) |
deleteOne() |
첫 번째로 일치하는 문서 제거 | db.collection.deleteOne({age: 18}) |
deleteMany() |
쿼리에 맞는 모든 문서 제거 | db.collection.deleteMany({age: 18}) |
이제 MongoDB 컬렉션에서 안전하고 효과적으로 문서를 삭제할 수 있는 지식을 갖추셨습니다. 강력한 권한이 따르는 책임감을 가지세요 - 쿼리를 실행하기 전에 항상 확인하세요!
coding을 즐기시고, 데이터베이스가 항상 깨끗하고 정리되어 있기를 바랍니다!
Credits: Image by storyset