Docs Menu
Docs Home
/
MongoDB マニュアル
/ / /

validateDBMetadata

項目一覧

  • 定義
  • 構文
  • コマンドフィールド
  • 動作
  • 出力

バージョン 5.0 で追加

validateDBMetadata

validateDBMetadataコマンドは、データベースまたはコレクションの保存されたメタデータが特定の API バージョン内で有効であるかどうかを確認します。

validateDBMetadata はエラーを報告しますが、エラーを修正する機能はありません。

このコマンドの構文は、次のとおりです。

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

このコマンドは、次のフィールドを使用します。

フィールド
タイプ
説明
ドキュメント

すべてのフィールドが 必須です。

  • versionstring

    検証する API バージョン。 現在は、 "1"が 唯一の バージョンです。

  • strictブール値

    trueの場合、 APIStrictError応答が出力に含まれます。

  • deprecationErrorsブール値

    trueの場合、 APIDeprecationError応答が出力に含まれます。

db
string
任意。 検証するデータベースの名前。 データベースが指定されていない場合は、すべてのデータベースが検証されます。
collection
string
任意。 検証するコレクションまたはビューの名前。 コレクションまたはビューが指定されていない場合は、 dbによって指定されたデータベース内のすべてのコレクションが検証されます。 データベースが指定されていない場合は、すべてのデータベース内のすべてのコレクションが検証されます。
  • すべてのデータベース内のすべてのコレクションを検証し、 APIStrictErrorおよびAPIVersionErrorエラー応答を報告します。

    db.runCommand( {
    validateDBMetadata: 1,
    apiParameters: {
    version: "1",
    strict: true,
    deprecationErrors: true
    },
    })
  • inventoryのすべてのコレクションを検証します。

    db.runCommand( {
    validateDBMetadata: 1,
    apiParameters: {
    version: "1",
    strict: true,
    deprecationErrors: true
    },
    db: "inventory",
    })
  • inventoryデータベース内のsalesコレクションを検証します。

    db.runCommand( {
    validateDBMetadata: 1,
    apiParameters: {
    version: "1",
    strict: true,
    deprecationErrors: true
    },
    db: "inventory",
    collection: "sales",
    })
  • すべてのデータベースにわたる任意の 60 salesコレクションを検証します。

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

注意

ユーザーは、検証するすべてのコレクションに対してvalidate特権アクションを持っている必要があります。

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

API バージョン エラーを説明するドキュメントの配列。

validateDBMetadata.apiVersionErrors[n].ns

エラーが発生したコレクションまたはビューの名前空間。

validateDBMetadata.apiVersionErrors[n].code

数値エラー コード。

validateDBMetadata.apiVersionErrors[n].codeName

エラー コードの名前。

validateDBMetadata.apiVersionErrors[n].errmsg

エラーを説明する string。

validateDBMetadata.ok

コマンドが失敗した場合、 ok1に設定されます。 それ以外の場合、 ok0に設定されます。 validateDBMetadata.okの値が0であっても検証エラーが報告される場合があります。

validateDBMetadata.hasMoreErrors

trueの場合、追加のエラーが発生します。

サンプル クエリ API コードを使用して、 mongoshsalesコレクションを作成します。

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

API バージョン 1 に厳密に準拠しているかどうかを確認し、出力にsales deprecationErrorsを含めるようにします。

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

validateDBMetadataitem_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,
}

戻る

validate