정의
버전 8.1에 추가 되었습니다.
경고
$listClusterCatalog 애그리게이션 단계는 지원되지 않으며 향후 릴리스에서 안정적임을 보장하지 않습니다. 출력이 향후 릴리스에서 변경될 수 있으므로 이 단계의 특정 출력 형식에 의존하는 기능을 빌드하지 마세요.
$listClusterCatalog 집계 단계에서는 이름 및 생성 옵션을 포함하여 클러스터 의 컬렉션에 대한 정보를 출력합니다.
$listClusterCatalog 은(는) 파이프라인의 첫 번째 단계여야 합니다.
데이터베이스 에 대해 이 단계를 호출해야 합니다. 관리 데이터베이스 대해 이 단계를 실행 클러스터 의 모든 컬렉션에 대한 정보가 반환됩니다. 다른 데이터베이스 대해 실행 해당 데이터베이스 내의 모든 컬렉션에 대한 정보가 반환됩니다.
구문
이 단계에는 다음 구문이 있습니다.
{ $listClusterCatalog: { shards: true, balancingConfiguration: true } }
$listClusterCatalog 단계에서는 다음과 같은 선택적 필드가 있는 문서 사용합니다.
필드 | 설명 |
|---|---|
| 선택 사항. 단계의 반환 문서 에 샤드 목록이 포함되도록 |
| 선택 사항. |
출력
$listClusterCatalog 컬렉션 당 문서 반환합니다. 각 문서 다음 필드가 포함될 수 있습니다.
{ "ns" : <string>, "db" : <string>, "type" : <string>, "idIndex" : <document>, "options" : <document>, "info" : <document>, "sharded" : <boolean>, "shardKey" : <document>, "shards" : [<string>], "balancingEnabled" : <boolean>, "balancingEnabledReason" : <document>, "autoMergingEnabled" : <boolean>, "chunkSize" : <int> }
다음 표에는 $listClusterCatalog 가 반환하는 필드에 대한 정보가 포함되어 있습니다.
필드 | 유형 | 기본값 쿼리 와 함께 반환됨 | 설명 |
|---|---|---|---|
| 문자열 | true |
|
| 문자열 | true | 컬렉션 있는 데이터베이스 의 이름입니다. |
| 문자열 | true | 데이터 저장 의 유형입니다. 컬렉션의 경우 |
| 문서 | true | 컬렉션 의 |
| 문서 | true | 반환된 문서 에는 다음 필드가 포함되어 있습니다.
이러한 옵션은 |
| 문서 | true | 컬렉션과 관련된 다음 필드를 나열합니다.
|
| 부울 | true | 컬렉션 의 샤딩된 여부를 지정합니다. 이 필드 복제본 세트 서버에도 존재합니다. |
| 문서 | 컬렉션 이 샤딩된 경우에만 표시됩니다. | 컬렉션 의 샤드 키. |
| 문자열 배열 | false, 입력 문서에 샤드 를 지정해야 합니다. | 컬렉션 당 샤드 |
| 부울 | false, 입력 문서에 balancingConfiguration 을 지정해야 합니다. | 해당 컬렉션에 대해 밸런싱 을 활성화할지 여부를 지정합니다. 이 필드 컬렉션 이 샤딩된 경우에만 표시됩니다. |
| 문서 | false, 입력 문서에 balancingConfiguration 을 지정해야 합니다. | 밸런싱을 전환하는 데 사용된 명령에 대한 정보를 반환합니다. 이 문서 에는 다음과 같은 필드가 있습니다.
이 필드 컬렉션 이 샤딩된 경우에만 표시됩니다. |
| 부울 | false, 입력 문서에 balancingConfiguration 을 지정해야 합니다. | 컬렉션에 대해 AutoMerger 를 사용할지 여부를 지정합니다. 이 필드 컬렉션 이 샤딩된 경우에만 표시됩니다. |
| int | false, 입력 문서에 balancingConfiguration 을 지정해야 합니다. | 컬렉션의 청크 크기, MiB를 반환합니다. 이 필드 컬렉션 이 샤딩된 경우에만 표시됩니다. |
제한 사항
데이터베이스 대해 이 admin listClusterCatalog 명령을 실행하려면 역할 에 포함된 권한 조치 clusterMonitor 필요합니다.
특정 데이터베이스 대해 이 명령을 실행 하려면 역할 listCollections 에 포함된 권한 조치 read 필요합니다.
예시
모든 컬렉션의 정보 나열
다음 예시 sample_mflix 데이터베이스 의 모든 컬렉션에서 기본값 정보를 반환합니다.
use sample_mflix db.aggregate([ { $listClusterCatalog: {} } ])
이 예시 실행 하면 sample_mflix 데이터베이스 의 각 컬렉션 에 대한 문서 포함된 배열 반환됩니다. 이러한 각 문서에는 앞의 표에 설명된 기본값 필드가 포함되어 있습니다.
[ { ns: "sample_mflix.movies", db: "sample_mflix", type: "collection", idIndex: { v: 2, key: { _id: 1 }, name: '_id' }, options: { ... }, sharded: false, info: { readOnly: false, uuid: new UUID("6c46c8b9-4999-4213-bcef-9a36b0cff228") } }, { ns: "sample_mflix.comments", db: "sample_mflix", type: "collection", options: { ... }, sharded: true, info: { readOnly: true, uuid: new UUID("6c448eb9-4090-4213-bbaf-9a36bb7fc98e") } shardKey: { _id: 1} }, ... ]
밸런싱 구성
샤딩된 컬렉션이 있는 데이터베이스 의 모든 컬렉션에 대한 밸런싱 구성에 대한 기본값 필드 및 정보를 반환할 수 있습니다.
다음 예시 sample_mflix 데이터베이스 에 대한 밸런싱 구성을 반환합니다.
use sample_mflix db.aggregate([ { $listClusterCatalog: { balancingConfiguration: true } } ])
앞의 예시 각 컬렉션 에 대한 문서 포함된 배열 반환합니다. 이러한 각 문서에는 기본값 필드와 함께 샤딩된 컬렉션의 balancingEnabled, balancingEnabledReason, autoMergingEnabled 및 chunkSize 필드가 포함되어 있습니다. 다음 코드는 이 출력의 예시 제공합니다.
[ { ns: "sample_mflix.movies", db: "sample_mflix", type: "collection", idIndex: { v: 2, key: { _id: 1 }, name: '_id' }, options: { ... }, sharded: false, ... }, { ns: "sample_mflix.comments", db: "sample_mflix", type: "collection", sharded: true, shardKey: { _id: 1}, balancingEnabled: true, balancingEnabledReason: { enableBalancing: true, allowMigrations: false }, autoMergingEnabled: false, chunkSize: 256, ... }, ... ]
이 페이지의 Node.js 예제에서는 Atlas 샘플 데이터 세트의 sample_mflix 데이터베이스 사용합니다. 무료 MongoDB Atlas cluster 생성하고 샘플 데이터 세트를 로드하는 방법을 학습하려면 MongoDB Node.js 운전자 설명서에서 시작하기 를 참조하세요.
MongoDB Node.js 운전자 사용하여 집계 파이프라인 에 $listClusterCatalog 단계를 추가하려면 파이프라인 객체 에 $listClusterCatalog 연산자 포함합니다.
데이터베이스의 모든 컬렉션에서 정보 나열
다음 예시 sample_mflix 데이터베이스 의 모든 컬렉션에 대한 정보를 반환하는 파이프라인 단계를 만듭니다. 예시 다음 파이프라인 실행합니다.
const pipeline = [{ $listClusterCatalog: {} }]; const db = client.db("sample_mflix"); const cursor = db.aggregate(pipeline); return cursor;
클러스터의 모든 컬렉션에서 정보 나열
다음 예시 클러스터 의 모든 컬렉션에 대한 정보를 반환하는 파이프라인 단계를 만듭니다. 예시 다음 파이프라인 실행합니다.
const pipeline = [{ $listClusterCatalog: {} }]; const adminDB = client.db("admin"); const cursor = adminDB.aggregate(pipeline); return cursor;
밸런싱 구성
다음 예시 sample_mflix 데이터베이스 의 모든 컬렉션에 대한 반환 문서에 밸런싱 정보를 포함하는 파이프라인 만듭니다. 예시 다음 파이프라인 실행합니다.
const db = client.db("sample_mflix"); const pipeline = [{ $listClusterCatalog: {balancingConfiguration: true} }]; const cursor = db.aggregate(pipeline); return cursor;