listDatabases
정의
listDatabases
listDatabases
명령은 모든 기존 데이터베이스 목록과 이에 대한 기본 통계를 제공합니다. 다음 예와 같이listDatabases
는admin
데이터베이스에 대해 실행되어야 합니다.
호환성
이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
참고
이 명령은 모든 MongoDB Atlas 클러스터에서 지원됩니다. 모든 명령에 대한 Atlas 지원에 대한 자세한 내용은 지원되지 않는 명령을 참조하세요.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
구문
db.adminCommand( { listDatabases: 1 } )
값(예: 1
은는 명령의 출력에 영향을 주지 않습니다.
명령 필드
이 명령은 다음과 같은 선택적 필드를 사용할 수 있습니다.
필드 | 유형 | 설명 |
---|---|---|
filter | 문서 | 선택 사항입니다. 나열되는 데이터베이스를 결정하는 쿼리 조건자입니다.
|
nameOnly | 부울 | 선택 사항. 명령이 데이터베이스 이름만 반환할지, 아니면 데이터베이스 이름과 크기 정보를 모두 반환할지를 나타내는 플래그입니다. 기본값은 |
authorizedDatabases | 부울 | 선택 사항입니다. 액세스 제어가 활성화된 경우 사용자 권한을 기반으로 반환되는 데이터베이스를 결정하는 플래그입니다.
자세한 내용은 동작을 참조하세요. |
comment | any | 선택 사항. 이 명령에 첨부할 사용자 제공 코멘트입니다. 설정되면 이 설명은 다음 위치에서 이 명령의 레코드와 함께 표시됩니다.
댓글은 유효한 모든 BSON types (문자열, 정수, 객체, 배열 등)이 될 수 있습니다. |
행동
인증이 활성화되면 listDatabases
명령은 명령을 실행하는 사용자에게 할당된 권한과 authorizedDatabases
명령 옵션에 따라 다른 값을 반환합니다.
authorizedDatabases
가 지정되지 않은 경우 및사용자가 클러스터 리소스에 대해
listDatabases
조치를 수행하는 경우listDatabases
명령은 모든 데이터베이스를 반환합니다.사용자가 클러스터에 대해
listDatabases
조치를 수행하지 않는 경우listDatabases
명령은 사용자에게 권한이 있는 데이터베이스만 반환합니다(사용자가 특정 컬렉션에 대한 권한이 있는 데이터베이스 포함).
authorizedDatabases
가true
인 경우listDatabases
명령은 사용자에게 권한이 있는 데이터베이스만 반환합니다(사용자가 특정 컬렉션에 대한 권한을 보유한 데이터베이스 포함).authorizedDatabases
가false
인 경우 및사용자가 클러스터에 대해
listDatabases
조치를 수행하는 경우listDatabases
명령은 모든 데이터베이스를 반환합니다.사용자에게 클러스터에 대한
listDatabases
조치가 없는 경우, 권한 부족으로 인한listDatabases
명령 오류가 발생합니다.
클라이언트 연결 해제
MongoDB 4.2부터 listDatabases
를 발급한 클라이언트가 작업이 완료되기 전에 연결을 끊는 경우, MongoDB는 listDatabases
를 사용하여 를killOp
을 종료로 표시합니다.
복제본 세트 구성원 국가 제한
복제본 세트 노드에서 실행하는 경우 listDatabases
작업을 수행하려면 해당 노드가 PRIMARY
또는 SECONDARY
상태에 있어야 합니다. 노드가 STARTUP2
와 같은 다른 상태에 있으면 작업 오류가 발생합니다.
예시
데이터베이스 이름 및 크기 나열
admin
데이터베이스에 대해 listDatabases
를 실행합니다.
db.adminCommand( { listDatabases: 1 } )
다음은 listDatabases
결과의 예시입니다.
{ "databases" : [ { "name" : "admin", "sizeOnDisk" : 83886080, "empty" : false }, { "name" : "local", "sizeOnDisk" : 83886080, "empty" : false }, { "name" : "test", "sizeOnDisk" : 83886080, "empty" : false } ], "totalSize" : 251658240, "totalSizeMb" : 251, "ok" : 1 }
데이터베이스 이름만 나열
admin
데이터베이스에 대해 listDatabases
를 실행합니다. 다음과 같이 nameOnly: true
옵션을 지정합니다.
db.adminCommand( { listDatabases: 1, nameOnly: true} )
다음은 nameOnly: true
옵션으로 실행할 때의 listDatabases
결과의 예시입니다.
{ "databases" : [ { "name" : "admin" }, { "name" : "local" }, { "name" : "test" } ], "ok" : 1 }
필터와 일치하는 데이터베이스 목록
admin
데이터베이스에 대해 listDatabases
를 실행합니다. 지정된 필터 기준과 일치하는 데이터베이스만 나열하려면 filter
옵션을 지정합니다.
예를 들어, 다음은 listDatabases
가 지정된 regular expression
과 이름이 일치하는 데이터베이스의 정보만 반환하도록 필터를 지정합니다.
db.adminCommand( { listDatabases: 1, filter: { "name": /^rep/ } } )
샤딩된 클러스터
mongos
인스턴스에 대해 실행되는 경우 listDatabases
는 다음을 수행합니다.
nameOnly: false
인 경우 각 데이터베이스의 요약 문서에shards
내장된 문서를 추가하고local
데이터베이스를 제외합니다.
shards
내장된 문서의 각 요소는 키가 해당 샤드의 컬렉션 이름을 제공하고 값이 컬렉션 크기(바이트)를 나타내는 필드로 구성됩니다.
sizeOnDisk
필드는 나열된 모든 컬렉션 및 인덱스의 총 크기를 나타냅니다.
예를 들면 다음과 같습니다.
{ "databases" : [ { "name" : "admin", "sizeOnDisk" : 16384, "empty" : false, "shards" : { "config" : 16384 } }, { "name" : "config", "sizeOnDisk" : 176128, "empty" : false, "shards" : { "clients" : 28672, "patients" : 8192, "config" : 139264 } }, { "name" : "test", "sizeOnDisk" : 12288, "empty" : false, "shards" : { "clients" : 12288 } } ], "totalSize" : 204800, "totalSizeMb" : 0, "ok" : 1 }
출력
listDatabases.databases.shards
유형: 문서
shards
문서의 각 요소는 키가 해당 샤드의 collection 이름을 제공하고 값이 collection 크기(바이트)를 나타내는 필드로 구성됩니다.shards
nameOnly: false
인 경우에만 출력에 나타납니다.자세한 내용은 샤딩된 클러스터를 참조하세요.