MongoDB에서 deleteMany()와 Remove()의 차이점

Shihab Sikder 2023년1월30일
  1. MongoDB에서 deleteMany()의 매개변수 및 반환값
  2. MongoDB에서 remove()의 매개변수 및 반환값
MongoDB에서 deleteMany()와 Remove()의 차이점

deleteMany()remove()는 모두 MongoDB에서 항목을 삭제하는 데 사용됩니다. 최근 버전에서 remove는 더 이상 사용되지 않는 것으로 표시됩니다.

오히려 MongoDB는 deleteManydeleteOne 사용을 제안합니다. deleteMany 명령은 삭제하기 전에 일치시킬 매개변수를 허용할 수 있습니다.

MongoDB에서 deleteMany()의 매개변수 및 반환값

이 방법은 mongosh에서 가져온 것입니다. 일반적으로 컬렉션에서 특정 컬렉션의 문서를 삭제하는 데 사용됩니다.

사용 방법은 다음과 같습니다.

db.collection.deleteMany(
    <FILTER>,{
        writeConcern: <document>,
        collation: <document>
    }
)

<FILTER>는 사용자 정의 검색 필드를 사용할 수 있음을 나타냅니다. 가격이 30인 모든 제품을 삭제한다고 가정해 보겠습니다.

그러면 코드는 다음과 같습니다.

db.collection.deleteMany({
    price:30
})

여기에 다른 매개변수를 비워 둘 수 있습니다. 전체 컬렉션을 삭제하려면 deleteMany{}를 삽입하세요.

writeConcerncollation에 대한 자세한 내용은 다음과 같습니다.

매개변수 유형 설명
writeConcern 문서 선택적 매개변수입니다. 문서에 대한 승인을 넣습니다. writeConcern에 대해 자세히 알아보려면 이 블로그를 방문하십시오.
collation 문서 이를 통해 사용자는 문서에 대한 언어별 규칙을 사용할 수 있습니다. 데이터 정렬은 선택적 매개변수입니다. 사용하는 경우 local 필드를 사용해야 합니다. 데이터 정렬에 대한 자세한 내용은 다음과 같습니다.

deleteMany()는 함수가 writeConcern 매개변수와 함께 실행되는 경우 ‘승인됨’을 true로 반환합니다. 그렇지 않으면 false. 또한 삭제된 문서 수를 나타내는 deleteCount를 반환합니다.

‘deleteMany’는 필터와 일치하는 모든 문서를 삭제합니다.

샘플 반품은 다음과 같을 수 있습니다.

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

MongoDB에서 remove()의 매개변수 및 반환값

remove() 메소드에는 두 가지 기능이 있습니다. 또한 deleteManydeleteOne 역할을 할 수도 있습니다.

remove()에 대한 템플릿 코드는 여기에 있습니다.

db.collection.remove(
   <query>,
   <justOne>
)

일반적으로 이 두 매개변수가 사용됩니다. 또한 이를 다음으로 확장할 수 있습니다.

db.collection.remove(
   <query>,
   {
     justOne: <boolean>,
     writeConcern: <document>,
     collation: <document>
   }
)

writeConcerncollationdeleteMany()에 대해 위에서 논의한 것과 동일합니다. 여기서 필터 대신 query를 사용할 수 있습니다.

MongoDB의 query에 대해 자세히 알아보려면 다음 링크를 방문하세요.

remove 메소드에서 빈 객체를 전달하면 컬렉션에서 모든 문서가 제거됩니다. 예를 들어 product 컬렉션이 있고 가격이 5 미만인 모든 제품을 제거하려고 한다고 가정해 보겠습니다.

그러면 명령은 다음과 같습니다.

db.products.remove(
    {price:{ $lt: 5}}
)

이 명령을 입력하면 justOne 매개변수는 기본적으로 false가 됩니다. 이제 동일한 쿼리에 대해 하나의 요소만 삭제하려는 경우 명령은 다음과 같습니다.

db.products.remove(
    {price:{ $lt: 5}}, true
)

이 메서드는 WriteResult라는 개체를 반환하며, 여기에는 다음 매개변수가 있습니다.

WriteResult({ "nRemoved" : 10 })

또한 writeErrorwriteConcern이 있습니다. 이는 위의 writeConcern과 관련이 있습니다.

remove()는 이후 버전의 MongoDB에서 더 이상 사용되지 않습니다. 따라서 NodeJS 앱을 개발하는 동안 deleteOne 또는 deleteMany만 사용해야 합니다.

remove()에 대해 자세히 알아보려면 다음 웹 사이트를 방문하십시오.

Shihab Sikder avatar Shihab Sikder avatar

I'm Shihab Sikder, a professional Backend Developer with experience in problem-solving and content writing. Building secure, scalable, and reliable backend architecture is my motive. I'm working with two companies as a part-time backend engineer.

LinkedIn Website