MongoDB com drivers
Descrição
Alterado na versão 6.2.
db.collection.validate(<documents>)Valida uma coleção. O método escaneia os dados e índices de uma coleção para verificar se estão corretos e retorna o resultado. Para obter detalhes sobre a saída, consulte Validar saída.
Starting in version 5.0, the
db.collection.validate()method can also fix inconsistencies in the collection.As inconsistências de índice incluem:
Um índice é multikey, mas não há campos multikey.
Um índice tem multikeyPaths cobrindo campos que não são multikey.
Um índice não tem multikeyPaths, mas existem documentos multikey (para índices construídos antes da versão 3.4).
If any inconsistencies are detected by the
db.collection.validate()command, a warning is returned and the repair flag on the index is set totrue.db.collection.validate()also validates any documents that violate the collection's schema validation rules.The
db.collection.validate()method is a wrapper around thevalidatecommand.
Compatibilidade
Esse método está disponível em implantações hospedadas nos seguintes ambientes:
- MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud
Observação
This command is supported in all MongoDB Atlas clusters. For information on Atlas support for all commands, see Unsupported Commands.
MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB
MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB
Sintaxe
The db.collection.validate() method has the following syntax:
db.collection.validate( { full: <boolean>, // Optional repair: <boolean>, // Optional, added in MongoDB 5.0 checkBSONConformance: <boolean> // Optional, added in MongoDB 6.2 } )
Parâmetros
The db.collection.validate() method can take the following optional document parameter with the fields:
Campo | Tipo | Descrição |
|---|---|---|
booleano | Opcional. Um sinalizador que determina se o comando executa uma verificação mais lenta, mas mais completa, ou uma verificação mais rápida, mas menos completa.
O padrão é Para o mecanismo de armazenamento WiredTiger, somente o processo de validação | |
booleano | Opcional. Um sinalizador que determina se o comando executa um reparo.
O padrão é Só é possível executar um reparo em um nó standalone. O reparo corrige estes problemas:
Para obter mais informações, consulte a opção Novidade na versão 5.0. | |
booleano | Opcional. Se
Novidades na versão 6.2. |
Comportamento
Desempenho
The db.collection.validate() method is potentially resource intensive and may impact the performance of your MongoDB instance, particularly on larger data sets.
The db.collection.validate() method obtains an exclusive lock on the collection. This will block all reads and writes on the collection until the operation finishes. When run on a secondary, the operation can block all other operations on that secondary until it finishes.
Aviso
Validation has exclusive lock requirements that affect performance on primaries and on secondaries that are servicing reads. Consider only running db.collection.validate() on nodes that are not servicing reads or writes.
Para minimizar o impacto no primário, a maioria dos membros com dados (não árbitros) votantes no cluster deve estar disponível e não deve ter atraso significativo de replicação.
To minimize the impact of the validation operation on client applications, run db.collection.validate() on a secondary node that is not servicing read requests. You can convert the current primary node to a secondary node, by running the rs.stepDown() method.
To completely isolate the db.collection.validate() operation from client traffic, choose one of the following options:
Isole um membro do conjunto de réplicas seguindo o procedimento de manutenção de rolagem para removê-lo temporariamente do cluster.
Converta um nó secundário em um membro oculto do conjunto de réplicas e realize a validação no nó oculto.
Métricas de taxa de transferência de dados
Os comandos $currentOp e currentOp incluem informações dataThroughputAverage e dataThroughputLastSecond para validar operações em andamento.
As mensagens de registro para validar operações incluem informações dataThroughputAverage e dataThroughputLastSecond.
Melhorias na validação de collections
Starting in MongoDB 6.2, the validate command and db.collection.validate() method:
Verifique as collections para garantir que os documentos BSON estejam em conformidade com as especificações BSON.
Marque coleções de séries temporais para inconsistências de dados internos.
Tenha uma nova opção
checkBSONConformanceque habilita verificações BSON abrangentes.
Exemplos
To validate a collection
myCollectionusing the default validation setting (specifically, full: false):db.myCollection.validate() db.myCollection.validate({ }) db.myCollection.validate( { full: false } ) To perform a full validation of collection
myCollection, specify full: true:db.myCollection.validate( { full: true } ) Para reparar a coleção
myCollection, especifique repair: true:db.myCollection.validate( { repair: true } ) To perform additional BSON conformance checks in
myCollection, specify checkBSONConformance: true:db.myCollection.validate( { checkBSONConformance: true } )
Para obter detalhes sobre a saída, consulte Validar saída.