정의
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" } } ]