Docs Menu
Docs Home
/ /

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

MongoDB con controladores

Esta página documenta una 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 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
checkBSONConformance: <boolean> // Optional, added in MongoDB 6.2
} )

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 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 no válidos, los documentos se eliminan.

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. trueSi, MongoDB soluciona los siguientes problemas:

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

  • Si el validate comando encuentra documentos multiclave que no están especificados por 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 es, se comprueba la colección para garantizar que los documentos BSON cumplan con las especificaciones de BSON. Las comprobaciones aumentan el tiempo necesario para completar la validación. Cualquier error se devuelve como advertencia.

checkBSONConformance:

  • El valor por defecto es false.

  • Se habilita cuando full se establece en true.

  • No se puede utilizar con:

    • repair establecido en true.

    • metadata establecido en true.

Nuevo en la versión 6.2.

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.

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

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