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

db.colección.validate() (método mongosh)

MongoDB con controladores

Esta página documenta a mongosh . Para ver el método equivalente en un driver de MongoDB, se debe consultar la página correspondiente al lenguaje de programación:

C#Java SyncNode.jsPyMongoCC++GoJava RSKotlin CoroutineKotlin SyncPHPMongoidRustScala

Cambiado en la versión 6.2.

db.collection.validate(<documents>)

Valida una colección. El método escanea una colección de datos y los índices para verificar su corrección y retorna el resultado. Para obtener información sobre la salida, consulta 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 de 3.4).

Si se detectan inconsistencias por el comando db.collection.validate(), se devuelve una advertencia y la bandera de reparación en el índice se establece en true.

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

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

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
checkBSONConformance: <boolean> // Optional, added in MongoDB 6.2
} )

El método db.collection.validate() puede recibir el siguiente parámetro de documento opcional con los 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 comprobació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 false, omite algunas comprobaciones para 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. Una bandera que determina si el comando realiza una reparación.

  • Si true, se realiza una reparación.

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

El valor es por defecto false.

Una reparación solo puede ejecutarse en un nodo autónomo.

La reparación soluciona los siguientes 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 corruptos con datos BSON inválidos, se eliminan los documentos.

IMPORTANTE: Para establecer repair trueen, debe establecer la fixMultikey opción true en.

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

Nuevo en la versión 5.0.

fixMultikey

booleano

opcional. Si true, MongoDB soluciona los siguientes problemas:

  • Si el comando validate encuentra documentos multikey para un índice no multikey, MongoDB cambia el índice a un índice multikey.

  • Si el comando validate encuentra documentos multiclave que no están especificados en las rutas multiclave de un índice, MongoDB actualiza las rutas multiclave del índice.

El valor es por defecto false.

Nuevo en la versión 8.1.

booleano

opcional. Si true, la colección se verifica para asegurar que los documentos BSON cumplan con las especificaciones de BSON. Las comprobaciones aumentan el tiempo necesario para completar la operación de validación. Cualquier problema se devuelve como advertencia.

checkBSONConformance:

  • El valor por defecto es false.

  • Se activa cuando full está establecido en true.

  • No se puede usar con:

    • repair Se debe establecer en true.

    • metadata Se debe establecer en true.

Nuevo en la versión 6.2.

El método db.collection.validate() puede consumir muchos recursos y afectar el rendimiento de tu instancia de MongoDB, especialmente con conjuntos de datos grandes.

El método db.collection.validate() obtiene un bloqueo exclusivo en la colección. Esto bloqueará todas las lecturas y guardados en la colección hasta que se complete la operación. Cuando se ejecuta en un secundario, la operación puede bloquear todas las demás operaciones en ese secundario hasta que termine.

Advertencia

La validación tiene requisitos de bloqueo exclusivos que afectan el rendimiento en los primarios y en los secundarios que están atendiendo lecturas. Considera ejecutar db.collection.validate() solamente en nodos que no estén procesando operaciones de lectura o escritura.

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

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.

A partir de MongoDB 6.2, el comando validate y el método db.collection.validate():

  • Revise las colecciones para asegurarse de que los documentos BSON cumplan con las especificaciones de BSON.

  • Revisa las colecciones de series de tiempo para detectar inconsistencias internas en los datos.

  • Ten una nueva opción checkBSONConformance que habilite comprobaciones completas de BSON.

  • Para validar una colección myCollection usando la configuración de validación por defecto (específicamente, completo: falso):

    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 reparar la colección myCollection, especifica reparar: true:

    db.myCollection.validate( { repair: true } )
  • Para realizar comprobaciones de conformidad BSON adicionales myCollection en, especifique checkBSONConformance: true:

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

Para detalles de la salida, consulta Validar salida.

Volver

db.collection.updateOne

En esta página