jjinny_0609
냐냥
jjinny_0609
전체 방문자
오늘
어제
  • 분류 전체보기 (249)
    • IT (18)
      • Eclipse (1)
      • 라즈베리파이 (8)
      • 정보처리기사 (2)
      • 팀 프로젝트 (5)
      • 자료구조 (1)
      • CS 지식 (0)
    • 프로그래밍 언어 (75)
      • Java (33)
      • 파이썬 (4)
      • Node.js (38)
    • 프론트엔드(Frontend) (83)
      • HTML (7)
      • CSS (8)
      • JavaScript (10)
      • jQuery (2)
      • React (50)
      • Vue.js (6)
    • 백엔드(Backend) (62)
      • 네트워크 (1)
      • 데이터베이스 (49)
      • Spring (6)
      • JSP (6)
    • 협업 도구 (6)
      • Git & GitHub (6)
    • 리뷰 (1)
      • 향수 (1)
    • Game Engine (2)
      • 언리얼 엔진5 (1)
      • Unity (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 블로그관리 홈
  • 글쓰기
  • 글관리

공지사항

인기 글

hELLO · Designed By 정상우.
jjinny_0609

냐냥

백엔드(Backend)/데이터베이스

[MongoDB] Mongoose로 삭제하기

2023. 11. 29. 22:29
728x90

안녕하세요! 이번 글에서는 Mongoose를 사용하여 데이터를 삭제하는 방법에 대해 알아보겠습니다. 업데이트와 마찬가지로 삭제에는 두 가지 주요 유형의 메서드가 있습니다.

Remove 메서드: remove, deleteOne, deleteMany

Mongoose에서 삭제 작업은 remove, deleteOne, deleteMany 메서드를 사용하여 수행할 수 있습니다. 이 메서드들은 관련 문서를 직접 삭제하며 결과로는 삭제된 개수를 반환합니다.

 

remove 메서드

remove 메서드는 지정된 조건과 일치하는 모든 문서를 삭제합니다. 그러나 Mongoose에서는 이 메서드의 사용을 권장하지 않고, 대신 더 구체적인 deleteOne 또는 deleteMany 메서드를 사용하도록 권고하고 있습니다.

// remove 메서드 권장하지 않음
Movie.remove({ title: 'Amelie' }).exec();

deleteOne 메서드

deleteOne 메서드는 조건에 일치하는 첫 번째 문서만 삭제합니다.

Movie.deleteOne({ year: { $gte: 1999 } }).exec();

deleteMany 메서드

deleteMany 메서드는 조건에 일치하는 모든 문서를 삭제합니다.

Movie.deleteMany({ year: { $gte: 1999 } }).exec();

findOneAndDelete, findByIdAndDelete

삭제 후에 삭제된 문서를 반환받고 싶다면 findOneAndDelete 또는 findByIdAndDelete 메서드를 사용합니다. 이들 메서드는 삭제된 문서를 반환하므로 어플리케이션에서 활용할 수 있습니다.

 

findOneAndDelete 메서드

findOneAndDelete 메서드는 조건에 일치하는 문서 중 첫 번째 문서를 삭제하고 삭제 전의 문서를 반환합니다.

Movie.findOneAndDelete({ title: 'Alien' }).exec();

findByIdAndDelete 메서드

findByIdAndDelete 메서드는 주어진 ID에 해당하는 문서를 삭제하고 삭제 전의 문서를 반환합니다.

Movie.findByIdAndDelete(movieId).exec();

주의사항: 경고 메시지 및 설정

remove 메서드 사용 시 경고 메시지가 나타날 수 있습니다. 이 경우 deleteOne, deleteMany, bulkWrite를 사용하라는 안내가 있습니다. 또한, findOneAndDelete나 findByIdAndDelete 메서드를 사용할 때 삭제된 문서를 반환받으려면 { new: true } 옵션을 사용합니다.

// findOneAndDelete에서 삭제 후 새로운 문서를 반환받기 위한 예제
Movie.findOneAndDelete({ title: 'Alien' }, { new: true }).exec();

이렇게 삭제 메서드들을 조합하여 다양한 상황에서 데이터를 효과적으로 삭제할 수 있습니다. 여러분은 삭제 작업을 수행할 때 어떤 정보를 반환받고 활용할지 고려하여 적절한 메서드를 선택해야 합니다. 다음 글에서는 Mongoose의 고급 기능 중 하나인 유효성에 대해 자세히 알아보겠습니다. 계속해서 Mongoose의 다양한 기능을 익혀보세요!

 

 

 

728x90

'백엔드(Backend) > 데이터베이스' 카테고리의 다른 글

[MongoDB] 추가 스키마 제약조건  (0) 2023.11.30
[MongoDB] Mongoose 스키마 유효성 검사  (1) 2023.11.30
[MongoDB] Mongoose로 업데이트하기  (0) 2023.11.29
[MongoDB] Mongoose로 찾기  (0) 2023.11.29
[MongoDB] 데이터 대량 삽입하기  (0) 2023.11.28
    jjinny_0609
    jjinny_0609
    뉴비 개발자의 학습 내용을 정리한 블로그입니다.

    티스토리툴바