db.collection.estimatedDocumentCount()
드라이버가 포함된 MongoDB
이 페이지에서는 mongosh
메서드를 설명합니다. MongoDB 드라이버에서 해당 메서드를 보려면 프로그래밍 언어의 해당 페이지를 참조하세요.
정의
행동
메커니즘
db.collection.estimatedDocumentCount()
는 쿼리 필터 대신 메타데이터를 사용하여 collection의 개수를 반환합니다.
보기의 경우:
메타데이터가 없습니다.
문서 수는 뷰 정의에서 집계 파이프라인을 실행하여 계산됩니다.
문서 수에 대한 빠른 예상치는 없습니다.
샤딩된 클러스터
샤딩된 클러스터에서는 결과 개수가 고아 문서를 제대로 필터링하지 못합니다.
불분명한 종료
이 섹션은 collection에만 적용됩니다.
비정상 종료 후에는 개수가 부정확할 수 있습니다.
Wired Tiger 스토리지 엔진을 사용하여 mongod
를 비정상적으로 종료한 후에는 db.collection.estimatedDocumentCount()
에서 보고한 크기 통계가 정확하지 않을 수 있습니다.
편차의 정도는 마지막 체크포인트와 비정상 종료 사이에 수행된 삽입, 업데이트 또는 삭제 작업의 수에 따라 달라집니다. 체크포인트는 보통 60초마다 발생합니다. 그러나mongod
기본값이 아닌 --syncdelay
설정으로 실행되는 인스턴스는 체크포인트가 다소 빈번하게 발생할 수 있습니다.
mongod
의 각 컬렉션에서 validate
를 실행하여 비정상 종료 후 통계를 복원합니다.
비정상 종료 후
클라이언트 연결 해제
MongoDB 4.2부터 db.collection.estimatedDocumentCount()
를 발급한 클라이언트가 작업이 완료되기 전에 연결을 끊는 경우, MongoDB는 db.collection.estimatedDocumentCount()
를 사용하여 를killOp
을 종료로 표시합니다.
카운트 및 트랜잭션
트랜잭션에서 db.collection.estimatedDocumentCount()
를 사용하면 결과 개수는 커밋되지 않은 다중 문서 트랜잭션을 필터링하지 않습니다.
예시
다음 예시에서는 db.collection.estimatedDocumentCount()
를 사용하여 orders
컬렉션에 있는 모든 문서의 수를 조회합니다.
db.orders.estimatedDocumentCount({})