Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / /

validateDBMetadata

이 페이지의 내용

  • 정의
  • 호환성
  • 구문
  • 명령 필드
  • 행동
  • 출력
  • 예시

버전 5.0에 추가.

validateDBMetadata

validateDBMetadata 명령은 데이터베이스 또는 컬렉션의 저장된 메타데이터가 특정 API 버전 내에서 유효한지 확인합니다.

validateDBMetadata 은(는) 오류를 보고하지만 오류를 수정할 수 있는 기능이 없습니다.

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

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

참고

이 명령은 모든 MongoDB Atlas 클러스터에서 지원됩니다. 모든 명령에 대한 Atlas 지원 에 대한 자세한 내용은 지원되지 않는 명령을 참조하세요.

  • MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전

  • MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전

명령은 다음과 같은 구문을 가집니다:

db.runCommand(
{
validateDBMetadata: 1,
apiParameters: {
version: <string>,
strict: <boolean>,
deprecationErrors: <boolean>
},
db: <string>,
collection: <string>,
}
)

이 명령은 다음 필드를 사용합니다.

필드
유형
설명
문서

모든 필드는 필수 입력 사항 입니다.

  • version (문자열)

    유효성을 검사할 API 버전입니다. 현재로서는 "1" 이(가) 유일한 버전입니다.

  • strict (부울)

    true 인 경우 APIStrictError 응답이 출력에 포함됩니다.

  • deprecationErrors (부울)

    true 인 경우 APIDeprecationError 응답이 출력에 포함됩니다.

db
문자열
선택 사항. 유효성을 검사할 데이터베이스의 이름입니다. 데이터베이스를 지정하지 않으면 모든 데이터베이스의 유효성이 검사됩니다.
collection
문자열
선택 사항. 유효성을 검사할 collection 또는 뷰의 이름입니다. collection이나 뷰를 지정하지 않으면 db 로 지정된 데이터베이스 내 모든 collection의 유효성을 검사합니다. 데이터베이스를 지정하지 않으면 모든 데이터베이스의 모든 collection의 유효성을 검사합니다.
  • 모든 데이터베이스의 모든 collection을 검증하여 APIStrictErrorAPIVersionError 오류 응답을 보고합니다.

    db.runCommand( {
    validateDBMetadata: 1,
    apiParameters: {
    version: "1",
    strict: true,
    deprecationErrors: true
    },
    })
  • inventory 의 모든 collection 유효성 검사:

    db.runCommand( {
    validateDBMetadata: 1,
    apiParameters: {
    version: "1",
    strict: true,
    deprecationErrors: true
    },
    db: "inventory",
    })
  • inventory 데이터베이스에서 sales collection의 유효성을 검사합니다:

    db.runCommand( {
    validateDBMetadata: 1,
    apiParameters: {
    version: "1",
    strict: true,
    deprecationErrors: true
    },
    db: "inventory",
    collection: "sales",
    })
  • 모든 데이터베이스에서 모든 sales collection의 유효성을 검사합니다:

    db.runCommand( {
    validateDBMetadata: 1,
    apiParameters: {
    version: "1",
    strict: true,
    deprecationErrors: true
    },
    collection: "sales",
    })

참고

사용자에게 유효성을 검사하려는 모든 collection에 대한 validate 권한 조치가 있어야 합니다.

{
apiVersionErrors: [
{
ns: <string>,
code: <int>,
codeName: <string>,
errmsg: <string>
}
],
ok: <int>,
hasMoreErrors: <boolean>,
}
validateDBMetadata.apiVersionErrors

API 버전 오류를 설명하는 문서 배열입니다.

validateDBMetadata.apiVersionErrors[n].ns

오류가 있는 collection 또는 뷰의 네임스페이스입니다.

validateDBMetadata.apiVersionErrors[n].code

숫자 오류 코드입니다.

validateDBMetadata.apiVersionErrors[n].codeName

오류 코드의 이름입니다.

validateDBMetadata.apiVersionErrors[n].errmsg

오류를 설명하는 문자열입니다.

validateDBMetadata.ok

명령이 실패하면 ok1 로 설정됩니다. 그렇지 않으면 ok0 로 설정됩니다. validateDBMetadata.ok0 의 값을 가질 수 있으며 여전히 유효성 검사 오류를 보고합니다.

validateDBMetadata.hasMoreErrors

true 인 경우 추가 오류가 있는 것입니다.

샘플 Query API 코드를 사용하여 mongosh에서 sales 컬렉션을 만듭니다.

db.sales.insertMany([
{ "_id" : 1, "item" : "shoes", "price" : 10, "quantity" : 2, "date" : ISODate("2021-01-01T08:00:00Z") },
{ "_id" : 2, "item" : "hat", "price" : 20, "quantity" : 1, "date" : ISODate("2021-02-03T09:00:00Z") },
{ "_id" : 3, "item" : "gloves", "price" : 5, "quantity" : 5, "date" : ISODate("2021-02-03T09:05:00Z") },
{ "_id" : 4, "item" : "pants", "price" : 10, "quantity" : 10, "date" : ISODate("2021-02-15T08:00:00Z") },
{ "_id" : 5, "item" : "socks", "price" : 5, "quantity" : 10, "date" : ISODate("2021-02-15T09:05:00Z") },
{ "_id" : 6, "item" : "shirt", "price" : 5, "quantity" : 5, "date" : ISODate("2021-02-15T12:05:10Z") },
{ "_id" : 7, "item" : "belt", "price" : 5, "quantity" : 10, "date" : ISODate("2021-02-15T14:12:12Z") },
{ "_id" : 8, "item" : "blouse", "price" : 10, "quantity" : 5, "date" : ISODate("2021-03-16T20:20:13Z") }
])

item 필드에 텍스트 인덱스 를 추가합니다.

db.sales.createIndex( { item: "text" } )

sales collection이 API 버전 1을 엄격하게 준수하는지 확인하고 출력에 deprecationErrors 를 포함합니다.

db.runCommand( {
validateDBMetadata: 1,
apiParameters: {
version: "1",
strict: true,
deprecationErrors: true
},
collection: "sales",
})

validateDBMetadata 이(가) item_text 인덱스에서 APIStrictError 을(를) 보고합니다.

{
apiVersionErrors: [
{
ns: 'test.sales',
code: 323,
codeName: 'APIStrictError',
errmsg: 'The index with name item_text is not allowed in API version 1.'
}
],
ok: 1,
hasMoreErrors: false,
}

돌아가기

유효성 검사