MongoDB에서 deleteMany()와 Remove()의 차이점
deleteMany()
및 remove()
는 모두 MongoDB에서 항목을 삭제하는 데 사용됩니다. 최근 버전에서 remove
는 더 이상 사용되지 않는 것으로 표시됩니다.
오히려 MongoDB는 deleteMany
및 deleteOne
사용을 제안합니다. deleteMany
명령은 삭제하기 전에 일치시킬 매개변수를 허용할 수 있습니다.
MongoDB에서 deleteMany()
의 매개변수 및 반환값
이 방법은 mongosh에서 가져온 것입니다. 일반적으로 컬렉션에서 특정 컬렉션의 문서를 삭제하는 데 사용됩니다.
사용 방법은 다음과 같습니다.
db.collection.deleteMany(
<FILTER>,{
writeConcern: <document>,
collation: <document>
}
)
<FILTER>
는 사용자 정의 검색 필드를 사용할 수 있음을 나타냅니다. 가격이 30
인 모든 제품을 삭제한다고 가정해 보겠습니다.
그러면 코드는 다음과 같습니다.
db.collection.deleteMany({
price:30
})
여기에 다른 매개변수를 비워 둘 수 있습니다. 전체 컬렉션을 삭제하려면 deleteMany
에 {}
를 삽입하세요.
writeConcern
및 collation
에 대한 자세한 내용은 다음과 같습니다.
매개변수 | 유형 | 설명 |
---|---|---|
writeConcern |
문서 | 선택적 매개변수입니다. 문서에 대한 승인을 넣습니다. writeConcern 에 대해 자세히 알아보려면 이 블로그를 방문하십시오. |
collation |
문서 | 이를 통해 사용자는 문서에 대한 언어별 규칙을 사용할 수 있습니다. 데이터 정렬은 선택적 매개변수입니다. 사용하는 경우 local 필드를 사용해야 합니다. 데이터 정렬 에 대한 자세한 내용은 다음과 같습니다. |
deleteMany()
는 함수가 writeConcern
매개변수와 함께 실행되는 경우 ‘승인됨’을 true
로 반환합니다. 그렇지 않으면 false
. 또한 삭제된 문서 수를 나타내는 deleteCount
를 반환합니다.
‘deleteMany’는 필터와 일치하는 모든 문서를 삭제합니다.
샘플 반품은 다음과 같을 수 있습니다.
{ "acknowledged" : true, "deletedCount" : 9 }
MongoDB에서 remove()
의 매개변수 및 반환값
remove()
메소드에는 두 가지 기능이 있습니다. 또한 deleteMany
및 deleteOne
역할을 할 수도 있습니다.
remove()
에 대한 템플릿 코드는 여기에 있습니다.
db.collection.remove(
<query>,
<justOne>
)
일반적으로 이 두 매개변수가 사용됩니다. 또한 이를 다음으로 확장할 수 있습니다.
db.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>,
collation: <document>
}
)
writeConcern
과 collation
은 deleteMany()
에 대해 위에서 논의한 것과 동일합니다. 여기서 필터 대신 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 })
또한 writeError
및 writeConcern
이 있습니다. 이는 위의 writeConcern
과 관련이 있습니다.
remove()
는 이후 버전의 MongoDB에서 더 이상 사용되지 않습니다. 따라서 NodeJS 앱을 개발하는 동안 deleteOne
또는 deleteMany
만 사용해야 합니다.
remove()
에 대해 자세히 알아보려면 다음 웹 사이트를 방문하십시오.