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

MongoDB에서 컬렉션의 전체 데이터를 삭제하는 쿼리 사용법

MongoDB 컬렉션의 전체 데이터 삭제하기

MongoDB에서 컬렉션에 저장된 모든 문서를 한 번에 제거하려면 remove() 메서드에 빈 조건 객체 {}를 인자로 전달하면 됩니다. 이번 글에서는 실제 예제를 통해 컬렉션을 생성하고, 전체 데이터를 삭제하는 과정을 단계별로 살펴보겠습니다.

1단계: 샘플 컬렉션 및 문서 생성

먼저 insertOne() 메서드를 사용하여 demo309 컬렉션에 문서 두 개를 삽입합니다.

> db.demo309.insertOne({ "details":[ { "Name":"Chris" }, { "Name":"David" }, { "Name":"Adam" } ] } );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e4eb71af8647eb59e562040")
}
> db.demo309.insertOne({ "details":[ { "Name":"David" }, { "Name":"Mike" }, { "Name":"Bob" } ] } );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e4eb7cbf8647eb59e562041")
}

2단계: find() 메서드로 문서 확인

find() 메서드를 사용하면 컬렉션에 저장된 모든 문서를 조회할 수 있습니다.

> db.demo309.find();

위 명령을 실행하면 다음과 같은 결과가 출력됩니다.

{ "_id" : ObjectId("5e4eb71af8647eb59e562040"), "details" : [ { "Name" : "Chris" }, { "Name" : "David" }, { "Name" : "Adam" } ] }
{ "_id" : ObjectId("5e4eb7cbf8647eb59e562041"), "details" : [ { "Name" : "David" }, { "Name" : "Mike" }, { "Name" : "Bob" } ] }

현재 컬렉션에는 두 개의 문서가 저장되어 있는 것을 확인할 수 있습니다.

3단계: remove({})로 전체 데이터 삭제

이제 빈 조건 객체를 전달하는 remove() 쿼리를 실행하여 컬렉션의 모든 문서를 삭제합니다.

> db.demo309.remove({});

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

WriteResult({ "nRemoved" : 2 })

결과의 nRemoved : 2는 두 개의 문서가 성공적으로 삭제되었음을 의미합니다. 이후 다시 find()를 실행하면 아무런 문서도 반환되지 않는 것을 확인할 수 있습니다.

참고: 최신 MongoDB 버전에서는 deleteMany() 권장

MongoDB 5.0 이상 버전에서는 remove() 메서드가 더 이상 권장되지 않으며(deprecated), 대신 deleteMany() 메서드를 사용하는 것이 좋습니다. 전체 문서를 삭제하려면 다음과 같이 작성합니다.

> db.demo309.deleteMany({});

두 메서드 모두 조건 없이 빈 객체를 전달하면 컬렉션 내 모든 문서를 제거한다는 점은 동일합니다. 단, 컬렉션 자체와 인덱스 설정까지 완전히 제거하고 싶다면 drop() 메서드를 사용하는 것이 더 효율적입니다.