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

MongoDB에서 특정 문서를 제거하는 쿼리 사용법

MongoDB에서 특정 문서 제거하기

MongoDB에서 특정 문서를 삭제하려면 remove() 메서드를 사용하면 됩니다. 이 메서드에 조건을 전달하면 해당 조건과 일치하는 문서만 컬렉션에서 제거됩니다.

먼저 예제로 사용할 문서들이 포함된 컬렉션을 생성해 보겠습니다.

> db.demo56.insertOne({"Name":"Chris"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e272e0bcfb11e5c34d89917")
}
> db.demo56.insertOne({"Name":"David"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e272e10cfb11e5c34d89918")
}
> db.demo56.insertOne({"Name":"Bob"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e272e13cfb11e5c34d89919")
}

컬렉션의 모든 문서 조회하기

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

> db.demo56.find();

위 쿼리는 다음과 같은 결과를 출력합니다.

{ "_id" : ObjectId("5e272e0bcfb11e5c34d89917"), "Name" : "Chris" }
{ "_id" : ObjectId("5e272e10cfb11e5c34d89918"), "Name" : "David" }
{ "_id" : ObjectId("5e272e13cfb11e5c34d89919"), "Name" : "Bob" }

특정 문서 제거 쿼리 실행

이제 _id 값을 조건으로 지정하여 특정 문서 하나만 제거해 보겠습니다. 아래 쿼리는 ObjectId가 5e272e10cfb11e5c34d89918인 문서, 즉 Name이 "David"인 문서를 삭제합니다.

> db.demo56.remove({_id:ObjectId("5e272e10cfb11e5c34d89918")});
WriteResult({ "nRemoved" : 1 })

실행 결과의 nRemoved : 1은 한 개의 문서가 성공적으로 삭제되었음을 의미합니다.

삭제 후 결과 확인

다시 find() 메서드를 실행하여 문서가 정상적으로 제거되었는지 확인합니다.

> db.demo56.find();

출력 결과에서 "David" 문서가 사라진 것을 확인할 수 있습니다.

{ "_id" : ObjectId("5e272e0bcfb11e5c34d89917"), "Name" : "Chris" }
{ "_id" : ObjectId("5e272e13cfb11e5c34d89919"), "Name" : "Bob" }

참고: 최신 버전에서 권장되는 방법

MongoDB 4.x부터는 remove() 메서드가 더 이상 권장되지 않으며(deprecated), 대신 목적에 맞는 다음 메서드를 사용하는 것이 좋습니다.

  • deleteOne(): 조건과 일치하는 첫 번째 문서 하나만 삭제
  • deleteMany(): 조건과 일치하는 모든 문서를 삭제

예를 들어 위와 동일한 작업은 다음과 같이 수행할 수 있습니다.

> db.demo56.deleteOne({_id:ObjectId("5e272e10cfb11e5c34d89918")});

조건 없이 remove()나 deleteMany()를 호출하면 컬렉션의 모든 문서가 삭제되므로, 실제 운영 환경에서는 반드시 삭제 조건을 신중하게 지정해야 합니다.