본문 바로가기

MBTI Project

자바스크립트를 통해 mongoDB에서 데이터 필터링하고, 해당 데이터 모아서 다른 테이블에 저장하기

728x90

오늘은 자바스크립트를 통해

mongoDB에서 데이터를 필터링하고,

해당 데이터 모아서 다른 테이블에 저장하는 작업을 하고자 한다.

 

우선 생각해보았다.

 

궁극적으로는 rest api 방식의 쿼리를 생성할 것이고,

현재는 단순 db 필터링 및 데이터 삽입 작업을 해야한다.

 

그렇다면 지금 당장은 웹서버를 구동하거나 추가적인 라이브러리를 사용할 필요 없이 그냥 자바스크립트 코드만으로 이 작업을 완료할 수 있겠다.

 

우선 나는 현재 db의 구조가 아래와 같으므로

title:문서이름

text:문서내용

 

문서내용에 mbti의 프로필이 존재하는 문서만 필터링 하도록 로직을 작성하도록 한다.

이 작업은 구문분석이 필요하므로 간단한 명령어로 내 예상이 맞는지 먼저 검증한다.

 

제목에 '지옥'이 들어간 모든 문서를 찾는 로직

 

 

 

 

잘된다.

 

이제 이부분의 패턴을 분석해서 가져와야 한다.

 

일단 패턴은 이렇게 보인다.

 

 

 

이러한 데이터에서 순수 프로필을 가져와야 한다.

 

대략적으로 이런 정규식을 여러개 겹쳐서 사용하면

 

이러한 순수 데이터를 얻어올 수 있다.

 

 

이제 이걸 insert 해줘야 하는데 그냥 insertMany를 쓰면 된다.

 

 

전체적인 구조는 아래와 같다.

 

이 구조로 8.9기가의 나무위키 크롤링 데이터에서 1800여개의 문서를 찾았다.

 

 

 

 

 

이 중 프로필을 가져오지 못한 200개를 제외하고 1600여개의 프로필을 얻을 수 있었다.

 

 

 

 

 

 

이번 작업을 통해 알게 된 것은 아래와 같다.

 

promise.all

findOne 

find 

insertMany

 

 

 

728x90