Docs Menu
Docs Home
/ /

문서 삭제

이 가이드에서는 삭제 작업 을 사용하여 MongoDB collection에서 문서를 제거하는 방법에 대해 설명합니다.

이 가이드에는 다음 섹션이 포함되어 있습니다.

  • 예제용 샘플 데이터는 삭제 작업 예제에서 사용되는 샘플 데이터를 나타냅니다.

  • 삭제 작업 에서는 드라이버를 사용하여 삭제 작업을 실행하는 방법을 설명합니다.

  • 추가 정보에서 이 가이드에 언급된 유형 및 메소드에 대한 리소스 및 API 문서 링크를 찾을 수 있습니다.

이 가이드의 예에서는 다음 샘플 문서를 사용합니다. 각 문서는 매장 재고에 있는 품목을 나타내며 분류 및 단가에 대한 정보를 포함합니다.

{ "item": "trowel", "category": "garden", "unit_price": 9.89 },
{ "item": "placemat", "category": "kitchen", "unit_price": 3.19 },
{ "item": "watering can", "category": "garden", "unit_price": 11.99 }

Rust 드라이버는 삭제 작업을 수행하기 위해 delete_one()delete_many() 메서드를 제공합니다.

delete_one()delete_many() 메서드는 쿼리 필터를 매개 변수로 사용합니다. 쿼리 필터는 문서가 일치시킬 기준을 형성하는 필드와 값으로 구성됩니다.

두 메서드 중 하나에 선택적으로 DeleteOptions 유형을 매개 변수로 전달할 수도 있습니다. DeleteOptions 인스턴스에서 설정을 지정하여 삭제 작업을 구성할 수 있습니다. 각 설정에 기본값을 사용하려면 None 값을 옵션 매개 변수로 지정합니다.

참고

인스턴스화 옵션

Rust 드라이버는 DeleteOptions 을(를) 포함하여 다양한 유형을 생성하기 위해 빌더(Builder) 디자인 패턴을 구현합니다. 각 유형의 builder() 메서드를 사용하여 옵션 빌더 함수를 한 번에 하나씩 연결하여 옵션 인스턴스를 구성할 수 있습니다.

다음 표에서는 DeleteOptions 인스턴스에서 지정할 수 있는 설정에 대해 설명합니다.

옵션
설명

collation

The collation to use when sorting results. To learn more about collations, see the Collations guide.

Type: Collation
Default: None

write_concern

The write concern for the operation. If you don't set this option, the operation inherits the write concern set for the collection. To learn more about write concerns, see Write Concern in the Server manual.

Type: WriteConcern

hint

The index to use for the operation. To learn more about indexes, see Indexes in the Server manual. This option is available only when connecting to MongoDB Server versions 4.4 and later.

Type: Hint
Default: None

let_vars

A map of parameters and values. These parameters can be accessed as variables in aggregation expressions. This option is available only when connecting to MongoDB Server versions 5.0 and later.

Type: Document

comment

An arbitrary Bson value tied to the operation to trace it through the database profiler, currentOp, and logs. This option is available only when connecting to MongoDB Server versions 4.4 and later.

Type: Bson
Default: None

다음 코드는 DeleteOptions 인스턴스를 구성하여 delete_one() 메서드에 전달하는 방법을 보여줍니다.

let opts: DeleteOptions = DeleteOptions::builder().comment(bson!("hello!")).build();
let res = my_coll.delete_one(filter, opts).await?;

delete_one()delete_many() 메서드는 DeleteResult 유형을 반환합니다. 이 유형에는 삭제된 문서 수를 설명하는 deleted_count 속성이 포함되어 있습니다. 지정한 쿼리 필터와 일치하는 문서가 없는 경우 삭제 작업은 어떤 문서도 제거하지 않으며 deleted_count 의 값은 0 입니다.

이 예에서는 다음 매개 변수를 사용하여 delete_many() 메서드를 호출하는 방법을 보여 줍니다.

  • category 값이 "garden"인 문서와 일치하는 쿼리 필터

  • _id_ 인덱스를 삭제 작업에 대한 힌트로 사용하는 인스턴스 DeleteOptions 입니다.

let filter = doc! { "category": "garden" };
let hint = Hint::Name("_id_".to_string());
let opts: DeleteOptions = DeleteOptions::builder().hint(hint).build();
let res = my_coll.delete_many(filter, opts).await?;
println!("Deleted documents: {}", res.deleted_count);
Deleted documents: 2

참고

앞의 코드 예시에서 delete_many() 대신 delete_one() 메서드를 사용하는 경우 드라이버는 쿼리 필터와 일치하는 두 문서 중 첫 번째 문서만 삭제합니다.

삭제 작업의 실행 가능한 예는 다음 사용 예시를 참조하세요.

이 가이드의 작업에 대해 자세히 알아보려면 다음 문서를 참조하세요.

이 가이드에서 사용되는 메서드 또는 유형에 대해 자세히 알아보려면 다음 API 문서를 참조하세요.

돌아가기

Modify

이 페이지의 내용