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

MongoDB deleteOne() 메서드로 컬렉션에서 문서 삭제하기

MongoDB에서 컬렉션의 특정 문서 하나를 삭제하려면 deleteOne() 메서드를 사용하면 됩니다. 이 메서드는 조건에 일치하는 문서가 여러 개 있더라도 가장 먼저 발견된 단 하나의 문서만 삭제한다는 점이 특징입니다.

1. 테스트용 컬렉션 생성 및 데이터 삽입

먼저 실습을 위해 컬렉션을 생성하고 몇 개의 문서를 삽입해 보겠습니다.

> 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 })

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개의 문서가 정상적으로 저장된 것을 확인할 수 있습니다.

3. deleteOne()으로 문서 삭제하기

이제 deleteOne() 명령어를 사용해 보겠습니다. 이름에서 알 수 있듯이 이 메서드는 컬렉션에서 조건에 맞는 문서 중 단 하나만 삭제합니다. 아래 쿼리는 Name 필드 값이 "Larry"인 문서를 삭제합니다.

> db.deleteDocumentsDemo.deleteOne({"Name":"Larry"});

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

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

결과에서 deletedCount: 1은 하나의 문서가 성공적으로 삭제되었음을 의미합니다.

4. 삭제 결과 확인하기

find() 명령어로 남아 있는 문서를 다시 조회해 보겠습니다.

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

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

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

위 출력 결과를 보면 Name이 "Larry"인 문서가 더 이상 존재하지 않는 것을 확인할 수 있습니다. 이처럼 deleteOne() 메서드는 조건에 일치하는 첫 번째 문서만 정확히 제거하므로, 실수로 여러 문서를 삭제하는 것을 방지할 수 있습니다.