MongoDB 셸에서 show dbs 명령은 데이터베이스 목록을 간편하게 확인할 수 있는 헬퍼(helper) 명령입니다. 하지만 내부적으로 이 명령은 BSON 형식의 listDatabases 커맨드로 변환되어 서버에 전달됩니다. 드라이버나 스크립트 환경에서 직접 데이터베이스 목록을 조회해야 한다면 db.runCommand() 메서드를 사용하면 됩니다.
1단계: admin 데이터베이스로 전환
listDatabases 커맨드는 admin 데이터베이스에서 실행하는 것이 일반적입니다. 먼저 아래와 같이 admin 데이터베이스로 전환합니다.
> use admin switched to db admin
2단계: runCommand로 listDatabases 실행
이제 다음과 같이 db.runCommand()에 { listDatabases : 1 } 문서를 전달하여 명령을 실행합니다.
> db.runCommand({listDatabases : 1})실행 결과 예시
명령을 실행하면 서버에 존재하는 모든 데이터베이스의 이름(name), 디스크 사용량(sizeOnDisk), 빈 데이터베이스 여부(empty) 정보가 배열 형태로 반환됩니다.
{
"databases" : [
{
"name" : "admin",
"sizeOnDisk" : 2375680,
"empty" : false
},
{
"name" : "app",
"sizeOnDisk" : 32768,
"empty" : false
},
{
"name" : "business",
"sizeOnDisk" : 417792,
"empty" : false
},
{
"name" : "config",
"sizeOnDisk" : 106496,
"empty" : false
},
{
"name" : "local",
"sizeOnDisk" : 81920,
"empty" : false
},
{
"name" : "main",
"sizeOnDisk" : 184320,
"empty" : false
},
{
"name" : "my",
"sizeOnDisk" : 753664,
"empty" : false
},
{
"name" : "ok",
"sizeOnDisk" : 1024000,
"empty" : false
},
{
"name" : "sample",
"sizeOnDisk" : 3297280,
"empty" : false
},
{
"name" : "sampleDemo",
"sizeOnDisk" : 352256,
"empty" : false
},
{
"name" : "studentSearch",
"sizeOnDisk" : 262144,
"empty" : false
},
{
"name" : "test",
"sizeOnDisk" : 32944128,
"empty" : false
},
{
"name" : "university",
"sizeOnDisk" : 229376,
"empty" : false
},
{
"name" : "web",
"sizeOnDisk" : 3661824,
"empty" : false
},
{
"name" : "webcustomertracker",
"sizeOnDisk" : 32768,
"empty" : false
}
],
"totalSize" : 45756416,
"ok" : 1
}결과 필드 설명
- databases: 각 데이터베이스의 정보가 담긴 배열입니다.
- name: 데이터베이스의 이름입니다.
- sizeOnDisk: 해당 데이터베이스가 디스크에서 차지하는 용량(바이트 단위)입니다.
- empty: 데이터베이스가 비어 있는지 여부를 나타냅니다.
- totalSize: 전체 데이터베이스의 총 디스크 사용량(바이트 단위)입니다.
- ok: 명령이 성공적으로 실행되었음을 의미합니다(1 = 성공).
참고: nameOnly 옵션으로 결과 경량화하기
데이터베이스 이름만 필요하고 용량 정보가 불필요한 경우에는 nameOnly 옵션을 활용할 수 있습니다. 이 옵션을 사용하면 응답 크기를 줄여 더 빠르게 목록을 조회할 수 있습니다.
> db.runCommand({ listDatabases: 1, nameOnly: true })이처럼 db.runCommand({ listDatabases : 1 })는 MongoDB 셸의 show dbs 명령과 동일한 역할을 수행하는 BSON 쿼리이며, 프로그래밍 방식으로 데이터베이스 목록을 조회할 때 유용하게 활용됩니다.