AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

문서 삭제

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

이 가이드의 예에서는 sample_restaurants 데이터베이스의 restaurants 컬렉션을 사용합니다. 이 컬렉션의 문서는 다음 Restaurant, Address, GradeEntry 클래스를 모델로 사용합니다.

public class Restaurant
{
public ObjectId Id { get; set; }
public string Name { get; set; }
[BsonElement("restaurant_id")]
public string RestaurantId { get; set; }
public string Cuisine { get; set; }
public Address Address { get; set; }
public string Borough { get; set; }
public List<GradeEntry> Grades { get; set; }
}
public class Address
{
public string Building { get; set; }
[BsonElement("coord")]
public double[] Coordinates { get; set; }
public string Street { get; set; }
[BsonElement("zipcode")]
public string ZipCode { get; set; }
}
public class GradeEntry
{
public DateTime Date { get; set; }
public string Grade { get; set; }
public float? Score { get; set; }
}

참고

restaurants 컬렉션 의 문서는 대소문자 명명 규칙을 사용합니다. 이 가이드 의 예제에서는 ConventionPack 를 사용하여 컬렉션 의 필드를 파스칼식 대/소문자로 역직렬화하고 Restaurant 클래스의 속성에 매핑합니다.

사용자 지정 직렬화에 대해 자세히 알아보려면 사용자 지정 직렬화를참조하세요.

이 컬렉션은 Atlas에서 제공하는 샘플 데이터 세트에서 가져온 것입니다. 퀵 스타트를 참조하여 무료 버전의 MongoDB 클러스터를 생성하고 이 샘플 데이터를 로드하는 방법을 알아보세요.

삭제 작업을 사용하여 쿼리 필터와 일치하는 문서를 제거합니다. 쿼리 필터는 쿼리 필터 문서의 기준에 따라 삭제할 레코드를 결정합니다. 다음 방법을 사용하여 MongoDB에서 삭제 작업을 수행할 수 있습니다.

  • DeleteOne(), 쿼리 필터와 일치하는 첫 번째 문서를 삭제합니다.

  • DeleteMany(), 쿼리 필터와 일치하는 모든 문서 를 삭제합니다.

다음 코드는 비동기 DeleteOneAsync() 메서드 또는 동기 DeleteOne() 메서드를 사용하여 단일 문서를 삭제하는 방법을 보여 줍니다.

var result = await _restaurantsCollection.DeleteOneAsync(filter);
var result = _restaurantsCollection.DeleteOne(filter);

다음 코드는 비동기 DeleteManyAsync() 메서드 또는 동기 DeleteMany() 메서드를 사용하여 일치하는 모든 문서를 삭제 하는 방법을 보여줍니다.

var result = await _restaurantsCollection.DeleteManyAsync(filter);
var result = _restaurantsCollection.DeleteMany(filter);

이러한 메서드를 사용하여 실행할 수 있는 예시는 추가 정보에서 찾아보세요.

DeleteOne()DeleteMany() 메서드를 사용하려면 일치시킬 문서를 지정하는 쿼리 필터하다 를 전달해야 합니다. 쿼리 필터하다 를 구성하는 방법에 대한 자세한 내용 은 쿼리 문서 튜토리얼에서 확인할 수 있습니다.

두 메서드 모두 선택적으로 DeleteOptions 유형을 추가 매개 변수로 사용하며, 이는 삭제 작업을 구성하는 데 사용할 수 있는 옵션입니다. DeleteOptions 속성을 지정하지 않으면 운전자 는 삭제 작업을 사용자 지정하지 않습니다.

DeleteOptions 유형을 사용하면 다음과 같은 속성을 가진 옵션을 구성할 수 있습니다.

속성
설명

Collation

결과를 정렬할 때 사용할 언어 데이터 정렬 유형을 가져오거나 설정합니다. 자세한 내용은 삭제 성명서를 참조하세요.

Comment

작업에 대한 주석을 가져오거나 설정합니다. 자세한 내용은 삭제 명령 필드를 참조하세요.

Hint

문서를 스캔할 때 사용할 인덱스를 가져오거나 설정합니다. 자세한 내용은 삭제 성명서를 참조하세요.

Let

허용 문서를 가져오거나 설정합니다. 자세한 내용은 삭제 명령 필드를 참조하세요.

다음 코드는 Atlas Search 메서드를 사용하여 DeleteMany() "borough_1" 인덱스를 검색하고 address.street 필드 값에 "Pearl Street" 문구가 포함된 모든 문서를 삭제합니다.

var filter = Builders<Restaurant>.Filter
.Regex("address.street", "Pearl Street");
DeleteOptions opts = new DeleteOptions { Hint = "borough_1" };
Console.WriteLine("Deleting documents...");
var result = _restaurantsCollection.DeleteMany(filter, opts);
Console.WriteLine($"Deleted documents: {result.DeletedCount}");
Console.WriteLine($"Result acknowledged? {result.IsAcknowledged}");
Deleting documents...
Deleted documents: 26
Result acknowledged? True

앞의 예시 에서 DeleteMany() 대신 DeleteOne() 메서드를 사용한 경우 운전자 는 26 일치하는 문서 중 첫 번째 문서를 삭제 합니다.

DeleteOne()DeleteMany() 메서드는 DeleteResult 유형을 반환합니다. 이 유형에는 삭제된 문서 수를 나타내는 DeletedCount 속성 과 결과가 승인되었는지 여부를 나타내는 IsAcknowledged 속성 이 포함됩니다. 쿼리 필터하다 가 어떤 문서와도 일치하지 않으면 문서가 삭제되지 않고 DeletedCount 는 0 이 됩니다.

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

이 가이드에서 설명하는 메서드나 유형에 대해 자세히 알아보려면 다음 API 설명서를 참조하세요.