인프런 커뮤니티 질문&답변

김형님의 프로필 이미지

작성한 질문수

MongoDB를 활용하여, 200억건 이상의 데이터 파이프라인 작성법

가장 많이 사용하는 Aggregate - $elemMatch

aggregations 에서 date 모양이 다른 문제

해결된 질문

24.03.26 14:46 작성

·

151

1

aggregations 에서 date 모양이 다른 문제가 있어요
제가 강사님 파일을 받아서 등록하면 date가 저렇게 날짜로 잡히네요 모양이 다른데 이유가 뭘까요?

또한 aggregations에서 date를 일치시켜주어도 매칭되는게 나오지 않아요

답변 2

0

김형님의 프로필 이미지
김형
질문자

2024. 03. 26. 15:30

Date 타입으로 저장되어 있어요
그냥 올려주신 json 파일 그대로 임포트한건데, 제가 설정에서 Date 타입을 unix로 변경이 가능하다는 말씀이실까요?

 

따로 unix 라는 것은 보이지가 않네요

July님의 프로필 이미지
July
지식공유자

2024. 03. 26. 15:34

Unix라는 것은 타입이 아니라, 일종의 시간값에 대한 형태를 의미합니다. 그래서 int64타입으로 선정이 됩니다.
- https://namu.wiki/w/%EC%9C%A0%EB%8B%89%EC%8A%A4%20%EC%8B%9C%EA%B0%84

혹시 json파일을 그대로 compass에 넣어주신걸까요?? 아니면 제가 제공해 드리는 Golang으로 작성된 마이그레이션 모듈을 사용을 하셨나요??

김형님의 프로필 이미지
김형
질문자

2024. 03. 26. 16:11

제공해주신 json 파일 그대로 컴패스에 넣었어요

accountId > account_id / 이런식으로 나와서 강의와 다소 다른부분은 그냥 보내주신 json 형식에 맞게 해보고 있어요~

July님의 프로필 이미지
July
지식공유자

2024. 03. 26. 17:28

음 사실 다양한 이유가 있을꺼 같습니다.

제가 제공해드린 모듈을 사용하면 unix 형태로 데이터가 들어갈것인데, 만약 compass에 해당 JSON파일을 넣게 되면, Compass 버전에 따라서 저런식으로 들어갈수도 있겠다는 생각을 하고 있습니다.
- 실제로 Json의 date값을 numberLong타입으로 mongo에서 다루는 int64타입과 동일하지만, 버전에 따라 이러한 방식은 차이가 있을수도 있습니다.

Date 타입에 대해서는 이런 부분을 참고하시면 좋을꺼같아요.
- https://www.mongodb.com/community/forums/t/how-can-i-match-all-data-between-two-date/189642/2

이외에도 공식 문서에서도 이러한 형태를 제공을 하고 있네요.
- https://www.mongodb.com/docs/manual/reference/method/Date/

이런 부분들을 참고해서 데이터에 대해서 쿼리를 작성해보시면 좋은거 같습니다.

하지만 실제 실무에서는 Date타입은 잘 사용하지 않는다는걸 명심해 주세요.
제가 경험한 부분에서는 해당 타입은 잘 사용하지 않고 Unix형태로 사용을 하는것이 일반적입니다.

0

July님의 프로필 이미지
July
지식공유자

2024. 03. 26. 14:51

자세한 부분은 다시 확인을 해봐야할꺼 같습니다.

 

일단 저장되신 date타입이 중요할꺼 같네요.

저도 실무에서는 일반적으로 unix로 통일시켜서 사용을 하고는 있습니다.

 

먼저 compass에서 도큐먼트를 보실 때, 도큐먼트의 맨 오른쪽에 어떤 타입으로 저장이 되었는지 확인 먼저 해보시면 좋을꺼 같습니다.

 

현재 match쿼리를 진행 하실 때 string값으로 비교를 해서 일단 string타입은 아닌걸로 보입니다.

김형님의 프로필 이미지

작성한 질문수

질문하기