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

MongoDB에서 문서의 키 개수를 확인하는 방법

MongoDB에는 문서에 포함된 키(필드)의 개수를 바로 세어 주는 내장 함수가 없습니다. 따라서 키 개수를 확인하려면 간단한 자바스크립트 코드를 직접 작성해야 합니다. 이 글에서는 실제 예제를 통해 문서의 키 개수를 세는 방법을 단계별로 살펴보겠습니다.

1. 샘플 컬렉션 생성하기

먼저 insertOne() 메서드를 사용해 문서가 담긴 컬렉션을 생성합니다. 쿼리는 다음과 같습니다.

> db.numberofKeysInADocumentDemo.insertOne({
    "UserName":"John",
    "UserAge":21,
    "UserEmailId":"john12@gmail.com",
    "UserCountryName":"US"
});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5c9132584afe5c1d2279d6ac")
}

2. 저장된 문서 조회하기

find() 메서드를 사용하면 컬렉션의 모든 문서를 조회할 수 있으며, pretty() 메서드를 함께 사용하면 결과를 보기 좋게 정렬하여 출력합니다.

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

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

{
    "_id" : ObjectId("5c9132584afe5c1d2279d6ac"),
    "UserName" : "John",
    "UserAge" : 21,
    "UserEmailId" : "john12@gmail.com",
    "UserCountryName" : "US"
}

3. 키 개수 세기

findOne() 메서드로 문서 하나를 가져온 뒤, for-in 반복문을 사용해 객체의 모든 키를 순회하면서 개수를 셉니다.

> myDocument = db.numberofKeysInADocumentDemo.findOne({});
{
    "_id" : ObjectId("5c9132584afe5c1d2279d6ac"),
    "UserName" : "John",
    "UserAge" : 21,
    "UserEmailId" : "john12@gmail.com",
    "UserCountryName" : "US"
}
> numberOfKeys = 0;
0
> for(i in myDocument){ numberOfKeys++; }
> print("The document has " + numberOfKeys + " Keys");

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

The document has 5 Keys

위 예제에서는 _id 필드를 포함해 총 5개의 키가 있는 것을 확인할 수 있습니다. 만약 _id를 제외하고 사용자가 직접 정의한 필드만 세고 싶다면, 반복문 안에 i !== "_id" 조건을 추가하거나 아래처럼 Object.keys()를 활용하는 방법도 유용합니다.

> var keyCount = Object.keys(myDocument).length;
> print(keyCount);
5

Object.keys()는 객체의 열거 가능한 모든 키를 배열로 반환하므로, length 속성만 확인하면 손쉽게 키 개수를 구할 수 있습니다. 상황에 맞는 방법을 선택해 활용해 보시기 바랍니다.