몽고DB에서의 타임존 시간 값은 UTC로 고정이 되어 있다.
그렇기 때문에 한국시간과의 차이가 항상 9시간 존재하였으며, 특히 서버시간이 반영되지 않아서 조건을 주고 날짜를 가지고 검색하거나 집계하는 동안에 데이터가 빠지거나 더해지는 현상이 발생하고는 한다.
즉, Date형 자료형을 가지고 집계, 검색, 합계 등의 행위를 하는경우에 9시간 차이에 의해서 원치않는 값을 보고는 한다.
https://docs.mongodb.com/v3.2/tutorial/model-time-data/
Model Time Data — MongoDB Manual
Overview MongoDB stores times in UTC by default, and will convert any local time representations into this form. Applications that must operate or report on some unmodified local time value may store the time zone alongside the UTC timestamp, and compute t
docs.mongodb.com
이를 극복하기 위해서는 대략적으로 3가지 방법이 존재한다.
1. 시간 값을(Date) 문자열로 집어넣고 조회, 집계, 검색하는 기능으로 수정한다.
2. 시간 값을(Date) 어플리케이션에서 9시간 빼고 조회, 집계, 검색 하는 기능으로 수정한다.
3. 서버를 구동하는 경우 옵션을 주어서 로컬시간을 바라보게한다.
1번과 2번은 몽고db를 사용하는 앱에서 해야되는 행위이고, 3번은 서버가 하는 행위 이다.
3번의 예를들면, 몽고db의 옵션을 입력해서보면 잘 나와 있다.

실제 몽고db사이트를 방문해도 해당 옵션을 주는법에 대해서 자세히 나와 있다.

https://docs.mongodb.com/manual/reference/program/mongos/
mongos — MongoDB Manual
Bypasses the validation checks for TLS/SSL certificates on other servers in the cluster and allows the use of invalid certificates to connect. Note Starting in MongoDB 4.0, if you specify --sslAllowInvalidCertificates or net.ssl.allowInvalidCertificates: t
docs.mongodb.com
해당 옵션을 주면 소스코드를 굳이 수정하지 않아도 된다.
뭐...데이터 베이스를 껏다 킬 수 없는 상황이면 어쩔수 없이 앱이 수정되하 하겠지만 말이다.
'몽고DB' 카테고리의 다른 글
몽고DB csv 출력, mongodb export csv (0) | |
---|---|
몽고DB에서의 Aggregate 사용시 lookup과 인덱스(index) (2) | |
몽고db 특징 간단 정리 (버전은 3.x.x 이하) (0) | |
몽고db 백업, 복원하기 (0) | |
Java를 활용한 MongoDB 대용량 집계, 억단위 (0) |
댓글