본문 바로가기

개발자는 오늘도 달립니다.

[MongoDB] 컬렉션 조회 함수 조회 하기 및 특정 컬렉션 빼고 삭제 하기! 본문

데이터베이스/몽고DB

[MongoDB] 컬렉션 조회 함수 조회 하기 및 특정 컬렉션 빼고 삭제 하기!

✍21시간 2021. 2. 9. 13:54

mongodb 는 쿼리 개념이 아니라 함수개념으로 스크립트 형태로 데이터를 필터링 합니다. 그래서 RDB 위주로 사용하신분들은 조금 헷갈릴 수도 있지만 그래도 꾸준히 mongodb 를 이용한다면 익숙해지리라 생각됩니다.

오늘 블로깅 할 함수는 db.getCollectionName( ) 함수인데 이 함수는 컬렉션을 조회하는 용도로 사용됩니다.

아래는 특정 문자열로 시작하거나, 종료되거나, 포함된 컬렉션을 조회하는 방법입니다.

 

1. "tb_" 로 시작하는 컬렉션명을 조회하는 방법

db.getCollectionNames().filter(function (c) { return c.indexOf('tb_') == 0; })

db.getCollectionNames().filter(function (c) { return c.startWith('tb_'); })

 

2. "_2021" 로 끝나는 컬렉션명을 조회하는 방법

db.getCollectionNames().filter(function (c) { return c.endsWith('_2021'); })

 

3. "order" 가 포함된 컬렉션명을 조회하는 방법

db.getCollectionNames().filter(function (c) { return c.includes('order'); })

 

아래는 getCollectionNames 함수와 filter 함수를 체인닝해서 특정 컬렉션만 제외하고 삭제할 수 있는 스크립트 입니다. 다양하게 응용하면 더 좋을 것 같네요 ㅎㅎ

exceptCollection 이라는 컬렉션을 제외하고 나머지 컬렉션 모두 삭제하는 스크립트!

let delList1 = db.getCollectionNames().filter(function(c){return c !== "exceptCollection"}); for(let val of delList1) {eval(`db.${val}.drop();`)}

 

Comments