Docs Menu
Docs Home
/
데이터베이스 매뉴얼
/ / /

db.getCollectionInfos() (mongosh 메서드)

db.getCollectionInfos(filter, options)

현재 데이터베이스 대한 컬렉션 또는 뷰 정보(예: 이름 및 옵션)가 포함된 문서 배열 반환합니다. 결과는 사용자의 권한 에 따라 달라집니다. 자세한 내용은 필수 액세스를 참조하세요.

db.getCollectionInfos() 헬퍼는 명령을 listCollections 래핑합니다.

db.getCollectionInfos() 메서드에는 다음과 같은 매개변수가 있습니다.

Parameter
유형
설명

filter

문서

선택 사항. 컬렉션 목록을 필터링하는 쿼리 조건입니다.

에서 반환된 모든 필드에 쿼리 조건자를 지정할 수 있습니다. db.getCollectionInfos()

options

문서

선택 사항. 명령에 대한 추가 옵션을 지정하는 문서 입니다. 사용 가능한 옵션 목록은 옵션을 참조하세요.

db.getCollectionInfos() 명령의 options 문서 에서 다음 옵션을 지정할 수 있습니다.

옵션
유형
설명

nameOnly

부울

선택 사항. 명령이 이름과 유형만 반환하는지(view, collection 또는 timeseries), 아니면 이름과 기타 정보를 모두 반환하는지 여부를 나타내는 플래그입니다.

기본값은 false입니다.

nameOnly이(가) true이면 filter 표현식이 컬렉션의 이름과 유형에 따라서만 필터링을 할 수 있습니다. 다른 필드는 사용할 수 없습니다.

예시 는 컬렉션 이름만 반환을 참조하세요.

authorizedCollections

부울

선택 사항.(으)로 설정하다 true 와(과) nameOnly: true 함께 사용하면 액세스 제어가 시행될 listCollections 때 필요한 권한 (예: 데이터베이스 에 대한 조치 )이 없는 사용자가 를 실행 db.getCollectionInfos() 수 있습니다.

authorizedCollections 옵션과 nameOnly 옵션 둘 다 true(참)로 설정된 경우에는 이 명령이 사용자에게 권한이 있는 컬렉션만 반환합니다. 예시는 다음과 같습니다.

  • 사용자에게 특정 컬렉션에 대한 조치 있는 경우 명령은 해당 컬렉션만 find 반환합니다.

  • 사용자에게 데이터베이스 리소스 에 대한 권한 조치 있는 경우 이 명령은 데이터베이스 의 모든 컬렉션을 나열합니다.

기본값 은 false 이며, 이는 listCollections 명령을 실행 하려면 사용자가 데이터베이스 에 조치 수행해야 함을 의미합니다.

데이터베이스에 대해 listCollections 작업이 있는 사용자의 경우 사용자가 데이터베이스의 컬렉션을 나열할 권한이 있으므로 이 옵션은 적용되지 않습니다.

nameOnly: true 없이 사용하면 이 옵션이 적용되지 않습니다.

이 메서드는 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.

  • MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스

참고

이 명령은 모든 MongoDB Atlas 클러스터에서 지원됩니다. 모든 명령에 대한 Atlas 지원에 관해 자세히 알아보려면 지원되지 않는 명령을 참조하십시오.

listCollections 명령과 해당 래퍼 에는 액세스 제어가 시행될 때 조치 필요합니다.db.getCollectionInfos() listCollections 사용자는 listCollections 을(를) 실행 하려면 데이터베이스 에 대한 조치 부여할 수 있는 권한이 있어야 listCollections 합니다.

예를 들어, 다음 명령은 test 데이터베이스에 대해 db.getCollectionInfos()를 실행할 수 있는 권한을 부여합니다.

{ resource: { db: "test", collection: "" }, actions: [ "listCollections" ] }

기본 제공 역할 read은(는) 특정 데이터베이스에 대해 listCollections을(를) 실행할 수 있는 권한을 제공합니다.

필수 read 권한이 없는 사용자는 authorizedCollectionsnameOnly이(가) 둘 다 true(으)로 설정된 경우 listCollections을(를) 실행할 수 있습니다. 이 경우 이 명령은 사용자에게 권한이 있는 컬렉션의 이름과 유형을 반환합니다.

그 예로 다음의 find 권한을 부여하는 역할이 있는 사용자를 생각해 보세요.

{ resource: { db: "sales", collection: "currentQuarter" }, actions: [ "find" ] }

authorizedCollectionsnameOnly이(가) 둘 다 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
}
)

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이(가) trueexample 데이터베이스의 모든 컬렉션에 대한 정보를 반환합니다.

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

돌아가기

db.getCollection

이 페이지의 내용