MongoDB를 사용하다 보면 서버에 존재하는 모든 데이터베이스의 목록이나 특정 데이터베이스에 속한 컬렉션 이름들을 확인해야 할 때가 있습니다. 이 글에서는 MongoDB 셸(mongo shell)에서 간단한 명령어만으로 이러한 정보를 조회하는 방법을 실제 실행 예제와 함께 자세히 알아보겠습니다.
1. 전체 데이터베이스 목록 조회하기
서버에 존재하는 모든 데이터베이스의 목록을 확인하려면 admin 데이터베이스로 전환한 후 listDatabases 명령어를 실행하면 됩니다.
use admin
db.runCommand({ listDatabases: 1 });
실행 예제
> use admin
switched to db admin
> db.runCommand({listDatabases: 1});
위 명령어를 실행하면 다음과 같은 결과가 출력됩니다. 각 데이터베이스의 이름(name), 디스크 사용량(sizeOnDisk), 비어 있는지 여부(empty)가 함께 표시됩니다.
{
"databases" : [
{
"name" : "admin",
"sizeOnDisk" : 1675264,
"empty" : false
},
{
"name" : "config",
"sizeOnDisk" : 131072,
"empty" : false
},
{
"name" : "local",
"sizeOnDisk" : 77824,
"empty" : false
},
{
"name" : "main",
"sizeOnDisk" : 184320,
"empty" : false
},
{
"name" : "my",
"sizeOnDisk" : 753664,
"empty" : false
},
{
"name" : "sample",
"sizeOnDisk" : 1286144,
"empty" : false
},
{
"name" : "sampleDemo",
"sizeOnDisk" : 352256,
"empty" : false
},
{
"name" : "studentSearch",
"sizeOnDisk" : 262144,
"empty" : false
},
{
"name" : "test",
"sizeOnDisk" : 15810560,
"empty" : false
},
{
"name" : "university",
"sizeOnDisk" : 229376,
"empty" : false
},
{
"name" : "web",
"sizeOnDisk" : 217088,
"empty" : false
}
],
"totalSize" : 20979712,
"ok" : 1
}
결과 하단의 totalSize 값은 모든 데이터베이스가 차지하는 총 디스크 크기(바이트 단위)를 의미합니다.
2. 특정 데이터베이스의 컬렉션 목록 조회하기
특정 데이터베이스에 포함된 컬렉션 이름들의 목록을 확인하려면 해당 데이터베이스로 전환한 후 getCollectionNames() 메서드를 호출하면 됩니다.
use yourDatabaseName; db.getCollectionNames();
실행 예제
여기서는 sample이라는 데이터베이스의 컬렉션 목록을 조회해 보겠습니다.
> use sample; switched to db sample > db.getCollectionNames();
위 명령어를 실행하면 다음과 같이 해당 데이터베이스에 존재하는 모든 컬렉션 이름이 배열 형태로 출력됩니다.
[
"arraySizeErrorDemo",
"basicInformationDemo",
"copyThisCollectionToSampleDatabaseDemo",
"documentWithAParticularFieldValueDemo",
"employee",
"findListOfIdsDemo",
"findMimimumElementInArrayDemo",
"findSubstring",
"getAllRecordsFromSourceCollectionDemo",
"getElementWithMaxIdDemo",
"insertDocumentWithDateDemo",
"internalArraySizeDemo",
"largestDocumentDemo",
"makingStudentInformationClone",
"nestedArrayDemo",
"oppositeAddToSetDemo",
"prettyDemo",
"returnOnlyUniqueValuesDemo",
"selectItemDemo",
"selectWhereInDemo",
"sourceCollection",
"specificFieldDemo",
"studentInformation",
"sumOfValueDemo",
"sumTwoFieldsDemo",
"truncateDemo",
"updateFieldIfValueIsGreaterDemo",
"updateInformation",
"userInformation"
]
마무리
지금까지 MongoDB 서버에서 데이터베이스 목록과 컬렉션 목록을 조회하는 두 가지 기본 명령어를 살펴보았습니다. 정리하면 다음과 같습니다.
- 데이터베이스 목록 조회:
db.runCommand({ listDatabases: 1 })— admin 데이터베이스에서 실행 - 컬렉션 목록 조회:
db.getCollectionNames()— 대상 데이터베이스로 전환 후 실행
참고로 최신 MongoDB 버전(4.0 이상)에서는 show dbs 또는 show collections 명령어로도 동일한 정보를 더 간편하게 확인할 수 있으니, 상황에 맞게 활용하시기 바랍니다.