AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

validateDBMetadata(データベースコマンド)

バージョン 5.0 の新機能。

validateDBMetadata

The validateDBMetadata command checks that the stored metadata of a database or a collection is valid within a particular API version.

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

このコマンドは、次の環境でホストされている配置で使用できます。

  • MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud

注意

This command is supported in all MongoDB Atlas clusters. For information on Atlas support for all commands, see Unsupported Commands.

  • MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン

  • MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン

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

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

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

フィールド
タイプ
説明

ドキュメント

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

  • version ( string )

    検証する 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

If the command fails, ok is set to 1. Otherwise, ok is set to 0. validateDBMetadata.ok may have a value of 0 and still report validation errors.

validateDBMetadata.hasMoreErrors

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

Use the sample Query API code to create a sales collection in mongosh:

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

validateDBMetadata reports an APIStrictError on the item_text index.

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