RDB에 익숙했던 나에게 몽고DB 컨트롤은 너무 어려웠다..

전날 쌓인 A Collection 의 Document 데이타를 B Collection 모두 Insert 시키고 싶었다.

Spring MongoTemplate 이나 Node JS 를 통해 돌리려고 하였지만..

데이타 량이 너무 많아서 부하가 심하였다..

RDB 처럼 INSERT SELECT가 없을까...

 

INSERT INTO B_COLLLECTION
SELECT * FROM A_COLLLECTION WHERE reg_date = '20190805'

 

위와 같이 RDB 방식으로 쉽게 하고 싶었다..

 

열심히 구글링하고 찾아본 결과 아래와 같이 했을 경우 RDB와 동일하게 처리 할 수 있다.

 

> db.B_COLLLECTION.insertMany(db.A_COLLLECTION.find({"reg_date": { $eq: '20190805'}}).toArray())

 

위에 같이 할 경우에는 _id 값이 자동으로 설정이 된다.

 

A_COLLLECTION 과 B_COLLLECTION 과 동일하게 _id 값을 하고 싶다면{"_id": false}을 추가해주면 된다.

{"_id": false} 을 할경우에는 키값이 중복이 안되므로 데이타에 맞게 사용하면 된다.

 

> db.B_COLLLECTION.insertMany(db.A_COLLLECTION.find({reg_date: '20190805'}, {"_id": false}).toArray())

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기