Docs Menu
Docs Home
/ / /
Java Reactive Streams 드라이버
/

문서 삭제

이 페이지의 내용

  • 개요
  • 샘플 데이터
  • 삭제 작업
  • 문서 하나 삭제
  • 여러 문서 삭제
  • 삭제 작업 사용자 지정
  • 예시
  • 추가 정보
  • API 문서

이 가이드 에서는 Java Reactive Streams 운전자 를 사용하여 삭제 작업을 수행하여 MongoDB 컬렉션 에서 문서를 삭제 하는 방법을 학습 수 있습니다.

삭제 작업은 MongoDB 컬렉션 에서 하나 이상의 문서를 삭제합니다. deleteOne() 또는 deleteMany() 메서드를 사용하여 삭제 작업을 수행할 수 있습니다.

이 가이드의 예시에서는 Atlas liveMigrations 링크 삭제sample_restaurants.restaurants 컬렉션을 사용합니다.

무료 MongoDB Atlas cluster 를 생성하고 샘플 데이터 세트를 로드하는 방법을 학습 보려면 시작하기 튜토리얼을 참조하세요.

중요

프로젝트 리액터 라이브러리

이 가이드 에서는 Project Reactor 라이브러리를 Publisher 사용하여 Java Reactive Streams 운전자 메서드에서 반환된 인스턴스를 사용합니다. 프로젝트 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 설명서를 참조하세요.

돌아가기

바꾸기