Count() 및 Remove() 함수 MongoDB 예와 함께
⚡ 스마트 요약
Count() 및 Remove() 함수 MongoDB 컬렉션에 포함된 문서 수를 보고하고 컬렉션에서 문서를 삭제합니다. `count()` 메서드는 문서의 총 개수를 반환하고, `remove()` 메서드는 모든 문서를 삭제하거나 지정된 조건과 일치하는 문서만 삭제합니다.

MongoDB 카운트() 함수
집계의 개념은 쿼리에서 반환된 결과에 대해 계산을 수행하는 것입니다. 예를 들어, 실행된 쿼리에 따라 컬렉션의 문서 수가 얼마인지 알고 싶다고 가정해 보겠습니다. MongoDB count() 함수를 제공합니다.
예 MongoDB 카운트() 함수
이에 대한 예를 살펴보겠습니다.
db.Employee.count()
Code 설명 :
- 위의 코드는 count 함수를 실행합니다.
명령이 성공적으로 실행되면 다음 출력이 표시됩니다.
출력:
출력에는 컬렉션에 4개의 문서가 있음이 명확하게 표시됩니다.
MongoDB 쿼리 조건을 사용한 개수
`count()` 메서드는 쿼리 조건을 전달할 때 가장 유용합니다. 전체 컬렉션이 아닌, 해당 조건과 일치하는 문서만 계산하기 때문입니다. 이는 부서에 속한 직원 수나 미처리 주문 수와 같은 보고서를 작성할 때 유용합니다.
다음 예시는 Employeeid가 2보다 큰 직원의 수를 계산합니다.
db.Employee.count({Employeeid:{$gt:2}})
다음과 같이됩니다.
- 쿼리 객체 {Employeeid:{$gt:2}}는 $gt(보다 큼) 연산자를 사용하여 필터 역할을 합니다.
- count() 함수는 필터를 만족하는 문서의 수만 반환합니다.
- 나머지 컬렉션은 총액 계산에서 제외됩니다.
현재 MongoDB 버전별 조건부 개수 계산에는 countDocuments() 메서드가 권장됩니다. 이 메서드는 항상 정확한 결과를 반환하기 때문입니다. 동일한 쿼리를 사용해도 정상적으로 작동합니다.
db.Employee.countDocuments({Employeeid:{$gt:2}})
두 명령 모두 단일 숫자를 반환하며, 이 숫자는 변수에 저장하거나 직접 표시할 수 있습니다. 쿼리하는 필드에 일치하는 인덱스를 추가하면 대규모 컬렉션에서 조건부 카운트 속도를 유지할 수 있습니다.
수정 수행
다른 두 가지 작업 클래스 MongoDB 업데이트 및 제거 문입니다.
업데이트 작업을 통해 기존 데이터를 수정할 수 있고, 제거 작업을 통해 컬렉션에서 데이터를 삭제할 수 있습니다.
Remove() 함수 MongoDB
In MongoDB 밸리 db.collection.remove() 메서드는 컬렉션에서 문서를 제거하는 데 사용됩니다. 모든 문서를 컬렉션에서 제거하거나 특정 조건과 일치하는 문서만 제거할 수 있습니다.
제거 명령만 실행하면 모든 문서가 컬렉션에서 제거됩니다.
예 MongoDB 제거() 함수
다음 코드 예제는 컬렉션에서 특정 문서를 제거하는 방법을 보여줍니다.
db.Employee.remove({Employeeid:22})
Code 설명 :
- 위의 코드는 제거 기능을 사용하고 이 경우 직원 ID가 22인 문서를 제거하는 기준을 지정합니다.
명령이 성공적으로 실행되면 다음 출력이 표시됩니다.
출력:
출력 결과에는 문서 1개가 삭제된 것으로 표시됩니다.
모든 문서 삭제 vs 단일 문서 삭제
`remove()` 메서드는 전달하는 인수에 따라 일치하는 모든 문서를 삭제하거나 하나만 삭제할 수 있습니다. 이 차이점을 이해하면 의도치 않은 데이터 손실을 방지할 수 있습니다.
컬렉션의 모든 문서를 제거하려면 빈 조건을 전달하세요.
db.Employee.remove({})
이렇게 하면 모든 문서가 삭제되지만 컬렉션 자체는 유지됩니다. 조건을 만족하는 문서만 삭제하려면 앞서 {Employeeid:22} 예시처럼 쿼리 객체를 전달하세요. 여러 문서가 조건을 만족하고 첫 번째 문서만 삭제하려면 justOne 옵션을 추가하세요.
db.Employee.remove({EmployeeName:"Smith"}, {justOne:true})
주요 차이점은 다음과 같습니다.
- remove({})는 컬렉션의 모든 문서를 삭제합니다.
- remove({condition})는 조건과 일치하는 모든 문서를 삭제합니다.
- remove({condition}, {justOne:true})는 일치하는 첫 번째 문서만 삭제합니다.
삭제 명령을 실행하기 전에 항상 조건을 다시 확인하십시오. 필터가 비어 있거나 잘못된 경우 전체 컬렉션이 삭제될 수 있습니다. 최신 버전에서는 MongoDBdeleteOne()과 deleteMany()는 이러한 패턴을 대체하여 의도를 더욱 명확하게 합니다.
count() 및 remove()의 현대적인 대안
count()와 remove()는 모두 레거시 메서드입니다. (새로운 메서드) MongoDB 드라이버는 해당 메서드를 더 이상 사용하지 않는 것으로 표시하고 더 명확한 대체 메서드를 제공합니다. 아래 표는 각 기존 메서드를 최신 메서드에 매핑합니다.
| 레거시 방법 | 최신 교체품 | 목적 |
|---|---|---|
| 카운트() | countDocuments() | 일치하는 문서의 정확한 개수를 반환합니다. |
| 카운트() | estimatedDocumentCount() | 모든 문서의 수를 빠르고 대략적으로 반환합니다. |
| 없애다() | 삭제원() | 필터와 일치하는 첫 번째 문서를 삭제합니다. |
| 없애다() | deleteMany() | 필터와 일치하는 모든 문서를 삭제합니다. |
새로운 애플리케이션에는 이러한 최신 방식을 사용하는 것이 좋습니다. 최신 방식은 개수 계산과 추정, 그리고 문서 하나 삭제와 여러 문서 삭제를 분리하여 쿼리를 더 안전하고 읽기 쉽게 만듭니다. 기존의 count() 및 remove() 함수는 이전 튜토리얼 및 스크립트에서는 여전히 사용할 수 있습니다.


