MongoDB에서 저장된 문서의 각 필드가 어떤 데이터 유형을 가지고 있는지 확인해야 하는 경우가 종종 있습니다. 이럴 때 typeof 연산자를 사용하면 복잡한 설정 없이 손쉽게 필드의 데이터 유형을 파악할 수 있습니다.
typeof로 데이터 유형 확인하기
기본적인 사용 방법은 다음과 같습니다.
typeof db.yourCollectionName.findOne().yourFieldName;
findOne() 메서드로 문서 하나를 가져온 뒤, 확인하고 싶은 필드에 typeof를 적용하면 해당 필드의 데이터 유형이 문자열 형태로 반환됩니다.
예제: 테스트 컬렉션 생성
먼저 실습을 위해 문서가 포함된 컬렉션을 생성해 보겠습니다.
> db.findDataTypeDemo.insertOne({"ClientName":"Chris","isMarried":false});
{
"acknowledged" : true,
"insertedId" : ObjectId("5ccf2064dceb9a92e6aa1952")
}저장된 문서 조회하기
다음은 findOne() 메서드를 사용하여 컬렉션에서 문서 하나를 조회하는 쿼리입니다.
> db.findDataTypeDemo.findOne();
이 명령은 다음과 같은 결과를 출력합니다.
{
"_id" : ObjectId("5ccf2064dceb9a92e6aa1952"),
"ClientName" : "Chris",
"isMarried" : false
}필드별 데이터 유형 조회
먼저 isMarried 필드의 데이터 유형을 확인해 보겠습니다.
> typeof db.findDataTypeDemo.findOne().isMarried;
실행 결과는 다음과 같습니다.
Boolean
이번에는 ClientName 필드의 데이터 유형을 확인해 보겠습니다.
> typeof db.findDataTypeDemo.findOne().ClientName;
실행 결과는 다음과 같습니다.
String
필드 값 자체 조회하기
데이터 유형뿐만 아니라 필드에 저장된 값 자체도 조회할 수 있습니다. 쿼리는 다음과 같습니다.
> db.findDataTypeDemo.findOne().ClientName; Chris > db.findDataTypeDemo.findOne().isMarried; false
이처럼 typeof와 findOne()을 조합하면 별도의 집계 파이프라인 없이도 각 필드의 데이터 유형과 값을 빠르게 확인할 수 있어, 스키마 검증이나 디버깅 작업 시 매우 유용합니다.