Docs Menu
Docs Home
/ /
Colecciones

db.collection.validate() (método mongosh)

MongoDB con controladores

C#Java SyncNode.jsPyMongoCC++GoJava RSKotlin CoroutineKotlin SyncPHPMongoidRustScala
db.collection.validate(<documents>)

Valida una colección. El método escanea los datos de una colección, los indexa para comprobar su exactitud y devuelve el resultado. Para obtener más información sobre la salida, consulte Validar salida.

A partir de la 5.0 versión, el método también puede corregir inconsistencias en la db.collection.validate() colección.

Las inconsistencias del índice incluyen:

  • Un índice es multiclave pero no hay campos multiclave.

  • Un índice tiene rutas multikeyPath que cubren campos que no son multikey.

  • Un índice no tiene multikeyPaths pero hay documentos multikey (para índices creados antes 3.4 de).

Si el comando detecta alguna db.collection.validate() inconsistencia, se devuelve una advertencia y el indicador de reparación en el índice se establece true en.

db.collection.validate() también valida cualquier documento que viole las reglas de validación del esquema de la colección.

El método es db.collection.validate() validate un envoltorio alrededor del comando.

Este método 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 método db.collection.validate() tiene la siguiente sintaxis:

db.collection.validate( {
full: <boolean>, // Optional
repair: <boolean> // Optional, added in MongoDB 5.0
} )

El método puede tomar el siguiente parámetro de documento opcional con los db.collection.validate() campos:

Campo
Tipo
Descripción

booleano

Opcional. Un indicador que determina si el comando realiza una verificación más lenta pero más exhaustiva o una verificación más rápida pero menos exhaustiva.

  • Si true, realiza una verificación más exhaustiva con la siguiente excepción:

    • La validación completa en oplog para WiredTiger omite la verificación más exhaustiva.

  • Si es false, se omiten algunas comprobaciones para realizar una verificación más rápida pero menos exhaustiva.

El valor es por defecto false.

Para el motor de almacenamiento WiredTiger, solo el proceso de validación full forzará un punto de control y limpiará todos los datos en memoria en el disco antes de verificar los datos en el disco.

booleano

Opcional. Un indicador que determina si el comando realiza una reparación.

  • Si es true, se realiza una reparación.

  • Si es false, no se realiza ninguna reparación.

El valor es por defecto false.

Una reparación sólo se puede ejecutar en un nodo independiente.

La reparación corrige estos problemas:

  • Si se encuentran entradas de índice faltantes, se insertan las claves perdidas en el índice.

  • Si se encuentran entradas de índice adicionales, las claves adicionales se eliminan del índice.

  • Si se encuentran documentos de múltiples claves para un índice que no es un índice de múltiples claves, el índice se cambia a un índice de múltiples claves.

  • Si se encuentran documentos multiclave que no están especificados por las rutas multiclave de un índice, se actualizan las rutas multiclave del índice.

  • Si se encuentran documentos corruptos con datos BSON no válidos, los documentos se eliminan.

Para obtener más información, consulte la opción --repair para mongod

Nuevo en la versión 5.0.

El método potencialmente consume muchos recursos y puede afectar el rendimiento de su instancia de MongoDB, particularmente en conjuntos de datos db.collection.validate() grandes.

El método establece un bloqueo exclusivo en la colección. Esto bloqueará todas las lecturas y escrituras en la colección hasta que la operación finalice. Al ejecutarse en un secundario, la operación puede bloquear todas las demás operaciones en ese secundario hasta que db.collection.validate() finalice.

Advertencia

La validación tiene requisitos de bloqueo exclusivos que afectan el rendimiento de los nodos primarios y secundarios que realizan lecturas. Considere ejecutar únicamente db.collection.validate() en nodos que no realicen lecturas ni escrituras.

Para minimizar el impacto en la instancia primaria, la mayoría de los miembros con derecho a voto que contienen datos (no árbitros) en el clúster deben estar disponibles y no deben tener un retraso de replicación significativo.

Para minimizar el impacto de la validación en las aplicaciones cliente, ejecute en un nodo secundario que no esté atendiendo solicitudes de lectura.db.collection.validate() rs.stepDown() Puede convertir el nodo principal actual en un nodo secundario ejecutando el método.

Para aislar completamente la operación db.collection.validate() del tráfico del cliente, elige una de las siguientes opciones:

Los $currentOp currentOp comandos y dataThroughputAverage incluyen información y para operaciones de validación en curso.dataThroughputLastSecond

Los mensajes de registro para las operaciones de validación incluyen información dataThroughputAverage y dataThroughputLastSecond.

  • Para validar una colección myCollection utilizando la configuración de validación predeterminada (específicamente, full: false):

    db.myCollection.validate()
    db.myCollection.validate({ })
    db.myCollection.validate( { full: false } )
  • Para realizar una validación completa de la colección,myCollection especifique full: true:

    db.myCollection.validate( { full: true } )
  • Para myCollection reparar la colección, especifique repair: true:

    db.myCollection.validate( { repair: true } )

Para detalles de la salida, consulta Validar salida.

Volver

db.collection.updateOne

En esta página