Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
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 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 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

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

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 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 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