Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

validateDBMetadata (comando de base de datos)

Nuevo en la versión 5.0.

validateDBMetadata

La 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 API.

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

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 (string)

    La versión de la API contra la que hay que validar. Por ahora, "1" es la única versión.

  • strict (booleano)

    Si true, se incluirán en el resultado las respuestas de APIStrictError.

  • deprecationErrors (booleano)

    Si true, las respuestas APIDeprecationError se incluirán en el resultado.

db

string

opcional. El nombre de la base de datos que se va a validar. Si no se especifica ninguna base de datos, se validarán todas las bases de datos.

collection

string

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

  • Validar todas las colecciones en todas las bases de datos e informar sobre las respuestas de error de APIStrictError y APIVersionError.

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

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

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

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

Nota

Tu usuario debe tener la acción de privilegio validate en todas las colecciones que deseas validar.

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

Arreglo de documentos que describen los errores de la versión de la API.

validateDBMetadata.apiVersionErrors[n].ns

namespace 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 en 1. De lo contrario, ok se establece en 0. validateDBMetadata.ok puede tener un valor de 0 y aun así reportar errores de validación.

validateDBMetadata.hasMoreErrors

Si true, hay errores adicionales.

Utiliza el código de la API de consultas de ejemplo para crear una colección sales en 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") }
])

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

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

Valida la colección sales para el cumplimiento estricto con la versión 1 de la API e incluye deprecationErrors en la salida.

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

validateDBMetadata informa de un APIStrictError en el índice item_text.

{
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