MongoDB에서 ISODate를 숫자 값으로 변환해야 하는 경우가 종종 있습니다. 예를 들어 날짜 데이터를 정렬하거나, 계산에 활용하거나, 다른 시스템과 데이터를 주고받을 때 유용합니다. 이때 자바스크립트의 getTime() 메서드를 사용하면 간단하게 해결할 수 있습니다.
getTime() 메서드란?
getTime()은 1970년 1월 1일 00:00:00 UTC(유닉스 에포크)부터 해당 날짜까지 경과한 시간을 밀리초 단위의 숫자 값으로 반환합니다. 기본 문법은 다음과 같습니다.
yourVariableName.getTime();
ISODate를 숫자 값으로 변환하기
먼저 예제로 사용할 ISODate 변수를 생성합니다.
> var arrivalDate = ISODate('2019-04-18 13:50:45');이제 getTime() 메서드를 호출하여 ISODate를 숫자 값으로 변환합니다.
> arrivalDate.getTime();
실행 결과는 다음과 같습니다.
1555595445000
변환된 값이 올바른지 확인하기
반환된 숫자 값이 실제로 원래 날짜와 일치하는지 검증해 보겠습니다. 숫자 값을 new Date()에 전달하면 다시 날짜 객체로 되돌릴 수 있습니다.
> new Date(1555595445000);
실행 결과는 다음과 같습니다.
ISODate("2019-04-18T13:50:45Z")출력된 날짜가 처음에 생성한 arrivalDate(2019-04-18 13:50:45)와 정확히 일치합니다. 즉, getTime()으로 변환한 숫자 값은 올바른 값입니다.
정리
MongoDB에서 ISODate를 숫자 값으로 변환하려면 getTime() 메서드를 사용하면 됩니다. 반대로 숫자 값을 다시 날짜로 변환할 때는 new Date(숫자값)을 활용하면 되며, 두 방법을 조합하면 날짜 데이터를 손쉽게 검증하고 활용할 수 있습니다.