Docs Menu
Docs Home
/ /
Diagnósticos

validateDBMetadata (comando de base de datos)

Nuevo en la versión 5.0.

validateDBMetadata

El comando verifica que los metadatos almacenados de una base de datos o una colección sean válidos dentro de una versión particular de validateDBMetadata API.

validateDBMetadata informa errores, pero no tiene la capacidad de corregirlos.

Este comando está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

Nota

Este comando es compatible con todos los clústeres de MongoDB Atlas. Para obtener información sobre el soporte de Atlas para todos los comandos, consulte Comandos no compatibles.

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

El comando tiene la siguiente sintaxis:

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

El comando toma los siguientes campos:

Campo
Tipo
Descripción

Documento

Todos los campos son obligatorios.

  • version (cadena)

    La versión de la API con la que se validará. Por ahora, la única versión es "1".

  • strict (booleano)

    Si true es, las respuestasAPIStrictError se incluirán en la salida.

  • deprecationErrors (booleano)

    Si true es, las respuestasAPIDeprecationError se incluirán en la salida.

db

string

Opcional. El nombre de la base de datos que se validará. Si no se especifica ninguna base de datos, se validarán todas.

collection

string

Opcional. El nombre de la colección o vista que se validará. Si no se especifica ninguna colección ni vista, se validarán todas las colecciones de la base de datos especificada db por. Si no se especifica ninguna base de datos, se validarán todas las colecciones de todas las bases de datos.

  • Validar todas las colecciones en todas las bases de datos, informando las respuestas de error APIStrictError y APIVersionError.

    db.runCommand( {
    validateDBMetadata: 1,
    apiParameters: {
    version: "1",
    strict: true,
    deprecationErrors: true
    },
    })
  • Validar todas las colecciones en inventory:

    db.runCommand( {
    validateDBMetadata: 1,
    apiParameters: {
    version: "1",
    strict: true,
    deprecationErrors: true
    },
    db: "inventory",
    })
  • Validar la colección sales en la base de datos inventory:

    db.runCommand( {
    validateDBMetadata: 1,
    apiParameters: {
    version: "1",
    strict: true,
    deprecationErrors: true
    },
    db: "inventory",
    collection: "sales",
    })
  • Validar todas y cada una de las colecciones sales en todas las bases de datos:

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

Nota

Su usuario debe tener el privilegio de acción en todas las colecciones que desee validate validar.

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

Matriz de documentos que describen errores de versión de API.

validateDBMetadata.apiVersionErrors[n].ns

Espacio de nombres de la colección o vista con error.

validateDBMetadata.apiVersionErrors[n].code

Código de error numérico.

validateDBMetadata.apiVersionErrors[n].codeName

Nombre del código de error.

validateDBMetadata.apiVersionErrors[n].errmsg

Cadena que describe el error.

validateDBMetadata.ok

Si el comando falla, ok se establece 1 en. De lo contrario, ok se establece 0 en. puede tener un valorvalidateDBMetadata.ok de 0 y aun así reportar errores de validación.

validateDBMetadata.hasMoreErrors

Si es true, hay errores adicionales.

Utilice el código de muestra de la API de sales consulta para crear una mongosh colección en:

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

Añade un índice de texto en el item campo.

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

Valide la colección sales para verificar el estricto cumplimiento con la versión de API 1 e incluya deprecationErrors en la salida.

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

validateDBMetadata reporta un APIStrictError en el item_text índice.

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

Volver

validar

En esta página