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

MongoDB 컬렉션의 문서 개수를 세는 방법

MongoDB에서 컬렉션에 저장된 문서의 총 개수를 확인해야 하는 경우가 자주 있습니다. 이 글에서는 count() 메서드를 사용하여 MongoDB 컬렉션의 문서 수를 계산하는 방법을 단계별로 알아보겠습니다.

문서 개수 계산 기본 문법

MongoDB 컬렉션의 문서 수를 세는 기본 문법은 다음과 같습니다. 먼저 db.getCollection()으로 컬렉션을 변수에 할당한 뒤, 해당 변수에 count() 메서드를 호출하면 됩니다.

let anyVariableName = db.getCollection('yourCollectionName');
yourVariableName.count();

예제용 컬렉션 생성하기

실습을 위해 먼저 문서가 포함된 컬렉션을 하나 만들어 보겠습니다. insertOne() 메서드를 사용해 고객 정보 문서를 세 개 삽입합니다.

> db.countNumberOfDocumentsDemo.insertOne({"CustomerName":"Bob"});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5c9a5e2015e86fd1496b38a1")
}
> db.countNumberOfDocumentsDemo.insertOne({"CustomerName":"Ramit","CustomerAge":23});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5c9a5e3515e86fd1496b38a2")
}
> db.countNumberOfDocumentsDemo.insertOne({"CustomerName":"Adam","CustomerAge":27,"CustomerCountryName":"US"});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5c9a5e4c15e86fd1496b38a3")
}

세 개의 문서가 성공적으로 삽입되었습니다. 각 문서는 서로 다른 필드 구조를 가지고 있는데, 이는 MongoDB의 스키마 유연성을 잘 보여주는 예시입니다.

저장된 문서 전체 조회하기

find() 메서드와 pretty() 메서드를 함께 사용하면 컬렉션의 모든 문서를 읽기 좋은 형태로 출력할 수 있습니다.

> db.countNumberOfDocumentsDemo.find().pretty();

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

{ "_id" : ObjectId("5c9a5e2015e86fd1496b38a1"), "CustomerName" : "Bob" }
{
    "_id" : ObjectId("5c9a5e3515e86fd1496b38a2"),
    "CustomerName" : "Ramit",
    "CustomerAge" : 23
}
{
    "_id" : ObjectId("5c9a5e4c15e86fd1496b38a3"),
    "CustomerName" : "Adam",
    "CustomerAge" : 27,
    "CustomerCountryName" : "US"
}

컬렉션의 문서 개수 세기

이제 앞서 소개한 문법을 적용해 실제로 문서 개수를 계산해 보겠습니다. getCollection()으로 대상 컬렉션을 변수에 담은 후 count()를 호출합니다.

> let myCollectionName = db.getCollection('countNumberOfDocumentsDemo');
> myCollectionName.count();

실행 결과는 다음과 같습니다.

3

결과값 3은 컬렉션에 저장된 문서가 정확히 세 개임을 의미합니다. 이처럼 count() 메서드를 활용하면 별도의 복잡한 집계 작업 없이도 컬렉션의 문서 수를 손쉽게 파악할 수 있습니다.

참고 사항

최신 MongoDB 버전(4.0 이상)에서는 count() 대신 estimatedDocumentCount() 또는 countDocuments() 메서드 사용이 권장됩니다. countDocuments()는 조건에 맞는 정확한 개수를 반환하고, estimatedDocumentCount()는 컬렉션 메타데이터를 기반으로 빠르게 근사치를 반환합니다. 대량의 데이터를 다룰 때는 두 메서드의 특성을 잘 이해하고 선택하는 것이 좋습니다.