본문 바로가기

MBTI Project

MongoDB로 필드명 일괄 변경하기

728x90

MBTI 데이터를 정리하고

각 유형별 데이터를 확인해보니 문제가 생겼다.

 

위와같이 동일하거나 비슷한 이름의 컬럼이 여러개 있어 정리가 잘 되지 않는것이다.

 

예를들면

MBTI : "INFJ"

MBTI 유형 : "INFJ"

MBTI 성격유형 : "INFJ"

 

이 모두 다른 데이터로 표시되는 것이다.

 

방법은 하나다.

 

비슷한 컬럼명을 찾아

동일한 이름의 컬럼명으로 변경하는것.

 

방법을 찾아봤는데

 

알려진 간단한 방법은 없는 것 같았다.

 

 

그래서 아래와 같이 해결했다.

 

1. find() 명령어로 모든 데이터를 가져옴

2. 해시 테이블에 모든 컬럼명을 Set을 통해 담음

3. 비슷한 값을 모니터링해서 하나의 컬럼으로 합침

 

 

 

 

우선 updateParam 함수는

1번째 인자(배열)을 순회하며

2번째 인자로 받은 키워드를 포함한 필드명을 updateMany 쿼리를 통해

3번째 인자로 일괄변경하는 로직이다.

 

인자로

1. 모든 필드

2. MBTI

3. MBTI

를 넘기면

 

모든 필드에서

MBTI가 들어가는 모든 필드명을

MBTI로 변경하게 되는 것이다.

 

 

이 함수를 통해 문제를 해결한다면

 

이런식으로 변경할 유사 키워드를 동일한 이름으로 변경하는 로직을 완성할 수 있다.

 

컬럼은 계속 추가될 수 있으므로, 추가되는 내용은 이 함수에 이어서 작성한다.

 

 

 

 

이후 프로필이 추가되면 replaceColumn 함수를 재실행하여 컬럼 내용을 수정해준다.

 

 

 

728x90