MongoDB에서 데이터베이스에 저장된 모든 컬렉션의 이름을 한눈에 확인하고 싶다면 getCollectionNames() 메서드를 사용하면 됩니다. 이 메서드는 현재 접속 중인 데이터베이스에 존재하는 컬렉션 이름들을 배열(Array) 형태로 반환해 줍니다.
기본 문법
사용 방법은 매우 간단합니다. 별도의 매개변수 없이 아래와 같이 호출하기만 하면 됩니다.
db.getCollectionNames();
실행 예제
test 데이터베이스에 포함된 모든 컬렉션 이름을 조회해 보겠습니다.
> use test
> db.getCollectionNames();
실행 결과
명령을 실행하면 해당 데이터베이스의 컬렉션 이름들이 배열로 출력됩니다.
[
"arrayDemo",
"arrayFieldIsNotEmptyDemo",
"characterInFieldsDemo",
"checkFieldExistDemo",
"compareTwoFields",
"comparingTwoFieldsDemo",
"convertTextToDateTypeDemo",
"countGroupByDemo",
"demo407",
...
"demo641",
"employee",
"getAllKeysDemo",
"maxAttributePerGroup",
"name",
"objectArray",
"order",
"replaceSubstringDemo",
"retriveAllStudents",
"studentGetKeysDemo",
"studentInformation",
"totalDocumentDemo"
]
실제 환경에서는 데이터베이스에 생성된 컬렉션 개수만큼 전체 목록이 그대로 출력됩니다.
참고: show collections 명령어
mongo 셸(Shell) 환경에서는 더 간편하게 show collections 명령어로도 동일한 결과를 얻을 수 있습니다.
> show collections
두 방식 모두 컬렉션 목록을 보여준다는 점은 같지만, getCollectionNames()는 자바스크립트 배열을 반환하기 때문에 filter(), forEach() 등과 조합하여 원하는 컬렉션만 골라내는 등 훨씬 유연한 후속 처리가 가능하다는 장점이 있습니다.
예를 들어 이름에 'demo'가 포함된 컬렉션만 조회하고 싶다면 다음과 같이 작성할 수 있습니다.
> db.getCollectionNames().filter(function(c) {
... return c.indexOf("demo") !== -1;
... });이처럼 getCollectionNames()는 단순 조회를 넘어 스크립트 기반의 관리 작업에도 활용도가 높은 메서드이므로, MongoDB 운영 시 자주 사용하게 되니 꼭 기억해 두시기 바랍니다.