몽고DB/Java 몽고DB

MongoTemplate Aggregate 사용간 파싱 버그

마샤와 곰 2019. 7. 19. 14:45

 

 

몽고db에서 집계함수를 통해서 통계작업을 하던 도중 당황스러운 버그를 보았다.

엥..키 값으로 _id가 나왔다??

CHOICE_INFO.REG_DATE는 일반 문자열 상수로 String 값을 가지며, 값은 reg_date라는 소문자를 넣어놨었다.

즉, 내가 가져오는 값은 date, date를 daying으로 바꾼 값 2개인데..

위 스코드 어디에도 _id 를 키 또는 Projection에서 가져오는 구간이 없다.

그럼에도 불구하고 daying으로 이름을 바꾼 속성이 키 값으로 _id를 지정되서 나오는 모습을 보게 되었다..

이런 황당한 버그를 보았나;;

아무튼 위 현상을 해결하기위해 간단한 소스코드 한줄을 추가하였다.

아무 의미없는 "1"값을 가져오게 하였다.

어디에도 쓰이지않는 아무의미없는 "1"이라는 값을  key, value로 가져오게 하자 위 현상이 멈추었다.

아마도..

Mongotemplate에서 집계함수를 1개의 단일 속성에 대해 사용하게 되면 저러한 현상이 나타나게 되는 것 같다.

반응형