문서 삭제
개요
이 가이드 에서는 Java Reactive Streams 운전자 를 사용하여 삭제 작업을 수행하여 MongoDB 컬렉션 에서 문서를 삭제 하는 방법을 학습 수 있습니다.
삭제 작업은 MongoDB 컬렉션 에서 하나 이상의 문서를 삭제합니다. deleteOne()
또는 deleteMany()
메서드를 사용하여 삭제 작업을 수행할 수 있습니다.
샘플 데이터
이 가이드의 예시에서는 Atlas liveMigrations 링크 삭제의 sample_restaurants.restaurants
컬렉션을 사용합니다.
무료 MongoDB Atlas cluster 를 생성하고 샘플 데이터 세트를 로드하는 방법을 학습 보려면 시작하기 튜토리얼을 참조하세요.
중요
프로젝트 리액터 라이브러리
이 가이드 에서는 Project Reactor 라이브러리를 사용하여 Java Reactive Streams 운전자 메서드에서 반환된 Publisher
인스턴스를 사용합니다. Project Reactor 라이브러리 및 사용 방법에 학습 보려면 시작하기 를 참조하세요. Reactor 문서에서 확인 가능합니다. 이 가이드 에서 Project Reactor 라이브러리 메서드를 사용하는 방법에 학습 보려면 MongoDB 에 데이터 쓰기 가이드 를 참조하세요.
삭제 작업
다음 방법을 사용하여 MongoDB에서 삭제 작업을 수행할 수 있습니다.
deleteOne()
Atlas Search 기준과 일치 하는 첫 번째 문서를 삭제합니다.deleteMany()
Atlas Search 기준과 일치하는 모든 문서 를 삭제합니다.
각 삭제 메서드에는 제거하기 위해 선택할 문서를 결정하는 검색 기준을 지정하는 쿼리 필터하다 가 필요합니다. 쿼리 필터에 대한 자세한 내용은 MongoDB Server 매뉴얼의 필터 문서 쿼리 섹션 을 참조하세요.
문서 하나 삭제
MongoDB 컬렉션 에서 단일 문서 를 삭제 하려면 deleteOne()
메서드를 호출하고 쿼리 필터하다 를 전달합니다. 그런 다음 deleteOne()
결과를 Mono
의 정적 Mono.from
메서드에 전달합니다. Mono
는 Project Reactor 라이브러리의 클래스입니다. Java Reactive Streams에서 운전자 메서드는 콜드 Publisher
인스턴스를 반환하며, 이는 반환된 Publisher
을(를) 구독 하지 않는 한 해당 작업이 발생하지 않음을 의미합니다. 이 가이드 에서는 Project Reactor 라이브러리를 사용하여 이를 사용합니다. 에 학습 보려면 Mono 를 참조하세요. Project Reactor 문서에서 확인 가능합니다.Mono
다음 예시 에서는 restaurants
컬렉션 에서 name
값이 "Ready Penny Inn"
인 문서 를 삭제합니다.
Publisher<DeleteResult> deletePublisher = restaurants.deleteOne( eq("name", "Ready Penny Inn")); Mono.from(deletePublisher).block();
여러 문서 삭제
MongoDB 컬렉션 에서 여러 문서를 삭제 하려면 deleteMany()
메서드를 호출하고 쿼리 필터하다 를 전달합니다. 그런 다음 deleteMany()
결과를 Mono
의 정적 Mono.from
메서드에 전달합니다. Mono
는 Project Reactor 라이브러리의 클래스입니다. Java Reactive Streams에서 운전자 메서드는 콜드 Publisher
인스턴스를 반환하며, 이는 반환된 Publisher
을(를) 구독 하지 않는 한 해당 작업이 발생하지 않음을 의미합니다. 이 가이드 에서는 Project Reactor 라이브러리를 사용하여 이를 사용합니다. 에 학습 보려면 Mono 를 참조하세요. Project Reactor 문서에서 확인 가능합니다.Mono
다음 예시 에서는 restaurants
컬렉션 에서 borough
값이 "Brooklyn"
인 모든 문서를 제거합니다.
Publisher<DeleteResult> deletePublisher = restaurants.deleteMany( eq("borough", "Brooklyn")); Mono.from(deletePublisher).block();
삭제 작업 사용자 지정
DeleteOptions
클래스에는 삭제 메서드의 동작을 수정하는 메서드가 포함되어 있습니다. DeleteOptions
클래스를 사용하려면 클래스의 새 인스턴스 를 구성한 다음 해당 메서드 중 하나 이상을 호출하여 삭제 작업을 수정합니다. 이러한 메서드 호출을 함께 연결할 수 있습니다. 삭제 작업의 동작을 수정하려면 클래스 인스턴스 와 연결된 메서드 호출을 deleteOne()
또는 deleteMany()
메서드에 두 번째 인수로 전달합니다.
DeleteOptions
클래스에서 다음 메서드를 사용하여 삭제 메서드를 수정할 수 있습니다. 모든 메서드는 선택 사항입니다.
메서드 | 설명 |
---|---|
collation (Collation collation) | Specifies the kind of language collation to use when sorting
results. For more information, see Collation
in the MongoDB Server manual. |
hint (Bson hint) | Gets or sets the index to scan for documents.
For more information, see the hint statement
in the MongoDB Server manual. |
hint (String hint) | Gets or sets the index to scan for documents.
For more information, see the hint statement
in the MongoDB Server manual. |
let (Bson variables) | A map of parameter names and values. Values must be constant or closed
expressions that don't reference document fields. For more information,
see the let statement in the
MongoDB Server manual. |
comment (BsonValue comment) | A comment to attach to the operation. For more information, see the delete command
fields guide in the
MongoDB Server manual for more information. |
comment (String comment) | A comment to attach to the operation. For more information, see the delete command
fields guide in the
MongoDB Server manual for more information. |
예시
다음 코드는 deleteMany()
메서드를 사용하여 restaurants
컬렉션 에서 "Mongo"
string 을 포함하는 name
값을 가진 모든 문서를 삭제 합니다. 또한 comment
메서드를 사용하여 작업에 주석을 추가합니다.
Publisher<DeleteResult> deletePublisher = restaurants.deleteMany( regex("name", "Mongo"), new DeleteOptions().comment("Deleting Mongo restaurants")); Mono.from(deletePublisher).block();
추가 정보
Java Reactive Streams 운전자 를 사용하여 문서를 삽입하는 실행 가능한 코드 예제는 MongoDB 에 데이터 쓰기 가이드 를 참조하세요.
API 문서
이 가이드에서 사용되는 메서드 또는 유형에 대해 자세히 알아보려면 다음 API 설명서를 참조하세요.