Computer >> 컴퓨터 >  >> 프로그래밍 >> MongoDB

MongoDB 컬렉션에서 모든 문서를 삭제하는 방법 – deleteMany() 완벽 가이드

MongoDB에서 deleteMany()로 컬렉션의 모든 문서 삭제하기

MongoDB 컬렉션에 저장된 모든 문서를 한 번에 삭제하고 싶다면 deleteMany() 메서드를 사용하면 됩니다. 이 메서드에 빈 조건 객체({})를 전달하면 필터 조건 없이 컬렉션 내의 모든 문서가 삭제됩니다.

실제 동작 과정을 이해하기 위해, 먼저 컬렉션을 생성하고 몇 개의 문서를 삽입한 뒤 삭제하는 전체 흐름을 단계별로 살펴보겠습니다.

1단계: 컬렉션 생성 및 문서 삽입

먼저 'deleteDocumentsDemo'라는 컬렉션을 만들고 세 개의 문서를 삽입합니다:

> db.deleteDocumentsDemo.insert({"Name":"Larry","Age":23});
WriteResult({ "nInserted" : 1 })
> db.deleteDocumentsDemo.insert({"Name":"Mike","Age":21});
WriteResult({ "nInserted" : 1 })
> db.deleteDocumentsDemo.insert({"Name":"Sam","Age":24});
WriteResult({ "nInserted" : 1 })

각 insert 명령이 실행될 때마다 nInserted : 1이 반환되는 것으로 보아 문서가 정상적으로 저장되었음을 확인할 수 있습니다.

2단계: 현재 저장된 문서 확인

이제 find() 메서드를 사용해 컬렉션에 있는 모든 문서를 조회해 보겠습니다:

> db.deleteDocumentsDemo.find().pretty();

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다:

{
   "_id" : ObjectId("5c6ab0e064f3d70fcc914805"),
   "Name" : "Larry",
   "Age" : 23
}
{
   "_id" : ObjectId("5c6ab0ef64f3d70fcc914806"),
   "Name" : "Mike",
   "Age" : 21
}
{
   "_id" : ObjectId("5c6ab0f864f3d70fcc914807"),
   "Name" : "Sam",
   "Age" : 24
}

총 3개의 문서(Larry, Mike, Sam)가 컬렉션에 저장되어 있는 것을 확인했습니다.

3단계: deleteMany()로 모든 문서 삭제

이제 빈 조건 객체를 인자로 전달하여 deleteMany() 메서드를 호출합니다:

> db.deleteDocumentsDemo.deleteMany({});

실행 결과는 다음과 같습니다:

{ "acknowledged" : true, "deletedCount" : 3 }

결과 분석

출력 결과를 보면 acknowledged : true는 요청이 성공적으로 처리되었음을 의미하고, deletedCount : 3은 3개의 문서가 삭제되었음을 나타냅니다. 즉, 'deleteDocumentsDemo' 컬렉션에는 이제 어떤 문서도 남아 있지 않으며, deleteMany() 메서드를 통해 모든 문서가 성공적으로 삭제된 것입니다.

참고 사항

deleteMany({})는 컬렉션의 문서만 삭제할 뿐 컬렉션 자체까지 제거하지는 않습니다. 만약 컬렉션 구조(인덱스 등)까지 완전히 제거하고 싶다면 drop() 메서드를 사용하는 것이 더 효율적입니다. 또한 대량의 데이터가 있는 컬렉션에서는 drop() 후 필요한 인덱스를 다시 생성하는 방식이 deleteMany({})보다 훨씬 빠른 성능을 보여줍니다.