정의
db.getCollectionInfos(filter, options)
현재 데이터베이스 대한 컬렉션 또는 뷰 정보(예: 이름 및 옵션)가 포함된 문서 배열 반환합니다. 결과는 사용자의 권한 에 따라 달라집니다. 자세한 내용은 필수 액세스를 참조하세요.
db.getCollectionInfos()
헬퍼는 명령을listCollections
래핑합니다.
구문
db.getCollectionInfos()
메서드에는 다음과 같은 매개변수가 있습니다.
Parameter | 유형 | 설명 |
---|---|---|
| 문서 | |
| 문서 | 선택 사항. 명령에 대한 추가 옵션을 지정하는 문서 입니다. 사용 가능한 옵션 목록은 옵션을 참조하세요. |
옵션
db.getCollectionInfos()
명령의 options
문서 에서 다음 옵션을 지정할 수 있습니다.
옵션 | 유형 | 설명 |
---|---|---|
| 부울 | 선택 사항. 명령이 이름과 유형만 반환하는지( 기본값은
|
| 부울 | 선택 사항.(으)로 설정하다
기본값 은 데이터베이스에 대해
|
호환성
이 메서드는 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
참고
이 명령은 모든 MongoDB Atlas 클러스터에서 지원됩니다. 모든 명령에 대한 Atlas 지원에 관해 자세히 알아보려면 지원되지 않는 명령을 참조하십시오.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
필요한 액세스 권한
listCollections
명령과 해당 래퍼 에는 액세스 제어가 시행될 때 조치 필요합니다.db.getCollectionInfos()
listCollections
사용자는 listCollections
을(를) 실행 하려면 데이터베이스 에 대한 조치 부여할 수 있는 권한이 있어야 listCollections
합니다.
예를 들어, 다음 명령은 test
데이터베이스에 대해 db.getCollectionInfos()
를 실행할 수 있는 권한을 부여합니다.
{ resource: { db: "test", collection: "" }, actions: [ "listCollections" ] }
기본 제공 역할 read
은(는) 특정 데이터베이스에 대해 listCollections
을(를) 실행할 수 있는 권한을 제공합니다.
필수 read
권한이 없는 사용자는 authorizedCollections
및 nameOnly
이(가) 둘 다 true
(으)로 설정된 경우 listCollections
을(를) 실행할 수 있습니다. 이 경우 이 명령은 사용자에게 권한이 있는 컬렉션의 이름과 유형을 반환합니다.
그 예로 다음의 find
권한을 부여하는 역할이 있는 사용자를 생각해 보세요.
{ resource: { db: "sales", collection: "currentQuarter" }, actions: [ "find" ] }
authorizedCollections
및 nameOnly
이(가) 둘 다 true
(으)로 설정된 경우에는 사용자가 listCollections
을(를) 실행할 수 있습니다.
db.runCommand( { listCollections: 1.0, authorizedCollections: true, nameOnly: true } )
이 연산은 currentQuarter
컬렉션의 이름과 유형을 반환합니다.
단, 사용자에게 필수 액세스 권한이 없으면 다음 연산에서 오류가 반환됩니다.
db.runCommand( { listCollections: 1.0, authorizedCollections: true } ) db.runCommand( { listCollections: 1.0, nameOnly: true } )
show collections
mongosh
메서드인 show collections
은(는) 다음 항목과 유사합니다.
db.runCommand( { listCollections: 1.0, authorizedCollections: true, nameOnly: true } )
필수 액세스 권한이 있는 사용자의 경우,
show collections
은(는) 해당 데이터베이스의 시스템 외 컬렉션을 나열합니다.필수 액세스 권한이 없는 사용자의 경우,
show collections
은(는) 사용자에게 권한이 있는 컬렉션만 나열합니다.
행동
클라이언트 연결 해제
db.getCollectionInfos()
를 발급한 클라이언트가 작업이 완료되기 전에 연결을 끊는 경우, MongoDB는 killOp
를 사용하여 db.getCollectionInfos()
를 종료로 표시합니다.
복제본 세트 구성원 국가 제한
복제본 세트 노드에서 실행하는 경우 listCollections
연산을 수행하려면 노드가 PRIMARY
또는 SECONDARY
상태여야 합니다. 노드가 STARTUP2
와 같은 다른 상태이면 연산 오류가 발생합니다.
예시
데이터베이스의 모든 컬렉션에 대한 정보 반환
다음 항목은 example
데이터베이스의 모든 컬렉션에 대한 정보를 반환합니다.
use example db.getCollectionInfos()
[ { "name" : "employees", "type" : "collection", "options" : { "flags" : 1, "validator" : { "$or" : [ { "phone" : { "$exists" : true } }, { "email" : { "$exists" : true } } ] } }, "info" : { "readOnly" : false, "uuid" : UUID("222e18ca-4a10-4a42-a8fe-c39255cc4c55") }, "idIndex" : { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "example.employees" } }, { "name" : "products", "type" : "collection", "options" : { "flags" : 1 }, "info" : { "readOnly" : false, "uuid" : UUID("1bc898b2-3b91-45e4-9d8b-0be462d5a157") }, "idIndex" : { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "example.products" } }, { "name" : "mylogs", "type" : "collection", "options" : { "capped" : true, "size" : 256 }, "info" : { "readOnly" : true, "uuid" : UUID("8e62116d-b6a0-490a-808c-258ccb7ea947") }, "idIndex" : { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "example.mylogs" } } ]
컬렉션 이름만 반환
현재 데이터베이스 에 있는 컬렉션의 이름만 반환하려면 nameOnly: true
옵션을 지정합니다. 예시 를 들면 다음과 같습니다.
use example db.getCollectionInfos( {}, { nameOnly: true } )
[ { name: 'products', type: 'collection' }, { name: 'weather', type: 'timeseries' }, { name: 'system.buckets.weather', type: 'collection' }, { name: 'system.views', type: 'collection' }, { name: 'sales', type: 'collection' } ]
특정 컬렉션에 대한 정보 반환
특정 컬렉션 에 대한 컬렉션 정보를 요청 하려면 필터하다 문서 에 컬렉션 이름을 지정합니다. 다음 예시 에서는 example
데이터베이스 의 employees
컬렉션 에 대한 컬렉션 정보를 자세히 설명하는 단일 문서 포함된 배열 반환합니다.
use example db.getCollectionInfos( { name: "employees" } )
[ { "name" : "employees", "type" : "collection", "options" : { "flags" : 1, "validator" : { "$or" : [ { "phone" : { "$exists" : true } }, { "email" : { "$exists" : true } } ] } }, "info" : { "readOnly" : false, "uuid" : UUID("222e18ca-4a10-4a42-a8fe-c39255cc4c55") }, "idIndex" : { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "example.employees" } } ]
읽기 전용 컬렉션에 대한 정보 반환
db.getCollectionInfos()
에서 반환된 모든 필드에 필터하다 를 지정할 수 있습니다.
그 예로 다음 명령은 info.readOnly
이(가) true
인 example
데이터베이스의 모든 컬렉션에 대한 정보를 반환합니다.
use example db.getCollectionInfos( { "info.readOnly" : true } )
[ { "name" : "mylogs", "type" : "collection", "options" : { "capped" : true, "size" : 256 }, "info" : { "readOnly" : true, "uuid" : UUID("8e62116d-b6a0-490a-808c-258ccb7ea947") }, "idIndex" : { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "example.mylogs" } } ]