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

MongoDB 셸에서 컬렉션의 모든 레코드를 삭제하는 방법

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 공식 문서에서도 표준으로 안내하고 있는 방식입니다.