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

문서 삭제

이 가이드에서는 PyMongo를 사용하여 삭제 작업을 수행하여 MongoDB 컬렉션에서 문서를 제거하는 방법을 배울 수 있습니다.

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

이 가이드 의 예제에서는 Atlas 샘플 데이터 세트sample_restaurants.restaurants 컬렉션 을 사용합니다. 무료 MongoDB Atlas cluster 를 생성하고 샘플 데이터 세트를 로드하는 방법을 학습 보려면 PyMongo 시작하기 튜토리얼을 참조하세요.

다음 방법을 사용하여 MongoDB에서 삭제 작업을 수행할 수 있습니다.

  • delete_one()Atlas Search 기준과 일치 하는 첫 번째 문서를 삭제합니다.

  • delete_many()Atlas Search 기준과 일치하는 모든 문서 를 삭제합니다.

각 삭제 메서드에는 제거하기 위해 선택할 문서를 결정하는 Atlas Search 기준을 지정하는 쿼리 필터 문서가 필요합니다. 쿼리 필터에 대한 자세한 내용은 MongoDB Server 매뉴얼의 필터 문서 쿼리 섹션 을 참조하세요.

다음 예시 delete_one() 메서드를 사용하여 restaurants 컬렉션 에서 name 값이 "Ready Penny Inn"인 문서 제거 . Synchronous 또는 Asynchronous 탭 선택하여 해당 코드를 확인합니다.

query_filter = { "name": "Ready Penny Inn" }
result = restaurants.delete_one(query_filter)
query_filter = { "name": "Ready Penny Inn" }
result = await restaurants.delete_one(query_filter)

다음 예시 delete_many() 메서드를 사용하여 restaurants 컬렉션 에서 borough 값이 "Brooklyn"인 모든 문서를 제거 . Synchronous 또는 Asynchronous 탭 선택하여 해당 코드를 확인합니다.

query_filter = { "borough": "Brooklyn" }
result = restaurants.delete_many(query_filter)
query_filter = { "borough": "Brooklyn" }
result = await restaurants.delete_many(query_filter)

delete_one()delete_many() 메서드는 선택적으로 추가 매개변수를 허용하며, 이는 삭제 작업을 구성하는 데 사용할 수 있는 옵션을 나타냅니다. 추가 옵션을 지정하지 않으면 드라이버는 삭제 작업을 사용자 지정하지 않습니다.

속성
설명

collation

결과를 정렬할 때 사용할 언어 데이터 정렬의 종류를 지정합니다. 자세한 내용은 데이터 정렬 을 참조하세요.

hint

문서를 스캔할 인덱스를 가져오거나 설정합니다. 자세한 내용은 MongoDB Server 매뉴얼의 힌트 설명 을 참조하세요.

session

ClientSession 의 인스턴스입니다.

let

매개변수 이름과 값의 맵입니다. 값은 문서 필드를 참조하지 않는 상수 또는 닫힌 표현식이어야 합니다. 자세한 내용은 MongoDB Server 매뉴얼의 let 문 을 참조하세요.

comment

작업에 첨부할 주석입니다. 자세한 내용은 MongoDB Server 매뉴얼의 삭제 명령 필드 가이드를 참조하세요.

다음 코드는 delete_many() 메서드를 사용하여 restaurants 컬렉션 에서 "Mongo" 문자열을 포함하는 name 값을 가진 모든 문서를 삭제 . 또한 comment 옵션을 사용하여 작업에 주석을 추가합니다. Synchronous 또는 Asynchronous 탭 선택하여 해당 코드를 확인합니다.

query_filter = { 'name': {'$regex': 'Mongo' }}
result = restaurants.delete_many(query_filter, comment="Deleting Mongo restaurants")
query_filter = { 'name': {'$regex': 'Mongo' }}
result = await restaurants.delete_many(query_filter, comment="Deleting Mongo restaurants")

앞의 예제에서 delete_many() 대신 delete_one() 메서드를 사용한 경우 드라이버는 name 값이 "Mongo" 포함된 첫 번째 문서만 삭제합니다.

삭제 작업을 수행할 때 운전자 에서 사용할 데이터 정렬을 지정할 수 있습니다.

데이터 정렬은 대소문자 및 악센트 표시와 같이 문자열 비교를 위한 언어별 규칙 설정하다 입니다.

데이터 정렬을 지정하려면 Collation 클래스 또는 Python 사전의 인스턴스 만듭니다. Collation 생성자에 전달하거나 사전에 키로 포함할 수 있는 옵션 목록은 MongoDB Server 매뉴얼의 데이터 정렬 을 참조하세요.

데이터 정렬 가져오기

Collation 클래스의 인스턴스 만들려면 pymongo.collation에서 가져와야 합니다.

다음 예시 이전 예시 와 동일한 삭제 작업을 수행하지만 기본값 데이터 정렬은 fr_CA입니다. Synchronous 또는 Asynchronous 탭 선택하여 해당 코드를 확인합니다.

from pymongo.collation import Collation
query_filter = { "borough": "Brooklyn" }
result = restaurants.delete_many(query_filter, collation=Collation(locale='fr_CA'))
from pymongo.collation import Collation
query_filter = { "borough": "Brooklyn" }
result = await restaurants.delete_many(query_filter, collation=Collation(locale='fr_CA'))

참고

작업 데이터 정렬 재정의 기본값

작업의 일부로 데이터 정렬을 지정하면 컬렉션 의 기본값 데이터 정렬이 재정의됩니다.

delete_one()delete_many() 메서드는 DeleteResult 유형을 반환합니다. 이 유형에는 다음과 같은 속성이 포함되어 있습니다.

  • deleted_count삭제된 문서 수를 나타냅니다.

  • acknowledged서버가 결과를 승인하는지 여부를 나타냅니다.

  • raw_result서버가 반환하는 원시 결과입니다.

참고

acknowledged 속성이 False 인 경우 DeleteResult 의 다른 모든 속성은 액세스 시 InvalidOperation 예외를 발생시킵니다. 서버가 쓰기 작업을 승인하지 않으면 드라이버는 이러한 값을 결정할 수 없습니다.

쿼리 필터가 어떤 문서와도 일치하지 않으면 드라이버는 어떤 문서도 삭제하지 않으며 deleted_count 은 0 됩니다.

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