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())
'개발경험 및 메모 > MongoDB' 카테고리의 다른 글
MAC MongoDB 설치 및 실행 (0) | 2020.07.07 |
---|---|
[MongoDB] Failed to unlink socket file /tmp/mongodb-27017.sock Unknown error (0) | 2020.02.14 |
최근댓글