MongoDB 셸에서 컬렉션의 모든 레코드(문서)를 한 번에 삭제하려면 remove() 메서드를 사용하면 됩니다. 기본적인 문법은 다음과 같습니다.
db.yourCollectionName.remove({});여기서 빈 객체 {}를 조건으로 전달하면 해당 컬렉션에 있는 모든 문서가 삭제됩니다.
예제용 컬렉션 생성하기
문법을 실제로 이해하기 위해, 먼저 문서가 포함된 컬렉션을 만들어 보겠습니다. 아래는 컬렉션을 생성하고 문서를 삽입하는 쿼리입니다.
> db.deleteAllRecordsDemo.insertOne({"StudentName":"John"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c8f6ca32f684a30fbdfd596")
}
> db.deleteAllRecordsDemo.insertOne({"StudentName":"Carol","StudentAge":21});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c8f6cb22f684a30fbdfd597")
}
> db.deleteAllRecordsDemo.insertOne({"StudentName":"Mike","StudentAge":23,"Hobby":["Learning","Photography"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c8f6cde2f684a30fbdfd598")
}삽입된 문서 확인하기
find() 메서드를 사용하면 컬렉션에 저장된 모든 문서를 조회할 수 있습니다. 조회 쿼리는 다음과 같습니다.
> db.deleteAllRecordsDemo.find().pretty();
위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
{ "_id" : ObjectId("5c8f6ca32f684a30fbdfd596"), "StudentName" : "John" }
{
"_id" : ObjectId("5c8f6cb22f684a30fbdfd597"),
"StudentName" : "Carol",
"StudentAge" : 21
}
{
"_id" : ObjectId("5c8f6cde2f684a30fbdfd598"),
"StudentName" : "Mike",
"StudentAge" : 23,
"Hobby" : [
"Learning",
"Photography"
]
}컬렉션의 모든 레코드 삭제하기
이제 MongoDB에서 컬렉션의 모든 레코드를 삭제하는 쿼리를 실행해 보겠습니다.
> db.deleteAllRecordsDemo.remove({});
WriteResult({ "nRemoved" : 3 })실행 결과 nRemoved : 3이 반환된 것을 볼 수 있습니다. 이는 총 3개의 문서가 성공적으로 삭제되었음을 의미합니다.
삭제 후 다시 find() 메서드로 해당 컬렉션을 조회하면 아무런 데이터도 남아 있지 않은 것을 확인할 수 있습니다.
> db.deleteAllRecordsDemo.find().pretty();
출력 결과는 다음과 같이 비어 있습니다.
>
참고: 최신 버전에서는 deleteMany() 권장
MongoDB 3.2 이상 버전부터는 remove() 메서드 대신 deleteMany() 메서드를 사용하는 것이 권장됩니다. 모든 문서를 삭제하려면 다음과 같이 작성합니다.
> db.deleteAllRecordsDemo.deleteMany({});
{ "acknowledged" : true, "deletedCount" : 3 }deleteMany()는 삭제된 문서의 개수(deletedCount)를 명확하게 반환해 주며, 현재 MongoDB 공식 문서에서도 표준으로 안내하고 있는 방식입니다.