MongoDB - 문서 삭제

안녕하세요, 미래의 데이터베이스 마법사 여러분! 오늘 우리는 MongoDB에서 문서를 삭제하는 흥미로운 세상으로 뛰어들어 보겠습니다. 초보자라도 걱정 마세요 - 우리는 기본에서 시작하여 차근차근 올라갈 테니까요. 이 수업이 끝나면 프로처럼 문서를 삭제할 수 있을 거예요! 시작해 보겠습니다!

MongoDB - Delete Document

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)

여기서 truejustOne 매개변수입니다. 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"가 주제 배열의 하나인 모든 문서를 삭제합니다.

좋은 관행과 팁

  1. 삭제 전에 항상 쿼리를 다시 확인하세요: 실수로 더 많은 것을 삭제할 수 있습니다. 항상 쿼리를 확인하세요!
  2. findOne()을 사용한 후 remove()를 사용하세요: 쿼리에 대해 확신이 없다면, 같은 기준으로 findOne()을 사용하여 어떤 문서가 삭제될지 확인하세요.
  3. deleteOne()deleteMany()를 사용하세요: 이는 몇 개의 문서를 삭제할지 더 명확하게 합니다.
  4. 빈 쿼리에 주의하세요: 빈 쿼리 {}는 모든 문서를 일치시킵니다!
  5. 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