Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

db.collection.validate()

Nesta página

  • Descrição
  • Sintaxe
  • Comportamento
  • Exemplos

MongoDB com drivers

Esta página documenta um método mongosh. Para ver o método equivalente em um driver MongoDB, consulte a página correspondente da sua linguagem de programação:

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

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.

A partir da versão 5.0, o método db.collection.validate() também pode corrigir inconsistências na coleção.

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

Se alguma inconsistência for detectada pelo comando db.collection.validate(), será retornado um aviso e o sinalizador de reparo no índice será definido como true.

db.collection.validate() também valida todos os documentos que violam as regras de validação de esquema da coleção.

O método db.collection.validate() é um invólucro em torno do comando validate.

O método db.collection.validate() tem a seguinte sintaxe:

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

O método db.collection.validate() pode utilizar o seguinte parâmetro de documento opcional com os campos:

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.

  • Se true, executa uma verificação mais completa com a seguinte exceção:

    • A validação completa do oplog para WiredTiger ignora a verificação mais completa.

  • Se false, omite algumas verificações para uma verificação mais rápida, mas menos completa.

O padrão é false.

Para o mecanismo de armazenamento WiredTiger, somente o processo de validação full força um checkpoint e libera todos os dados na memória para o disco antes de verificar os dados no disco.

booleano

Opcional. Um sinalizador que determina se o comando executa um reparo.

  • Se true, um reparo é realizado.

  • Se false, nenhum reparo é realizado.

O padrão é false.

Só é possível executar um reparo em um nó standalone.

O reparo corrige estes problemas:

  • Se forem encontradas entradas de índice ausentes, as chaves ausentes serão inseridas no índice.

  • Se forem encontradas entradas extras do índice, as chaves extras serão removidas do índice.

  • Se documentos multikey forem encontrados para um índice que não é um índice multikey, ele será alterado para um índice multikey.

  • Se documentos multikey forem encontrados que não são especificados pelos caminhos multikey de um índice, os caminhos multikey do índice serão atualizados.

  • Se documentos corrompidos com dados BSON inválidos forem encontrados, os documentos serão removidos.

Para obter mais informações, consulte a opção --repair para mongod

Novidades na versão 5.0.

booleano

Opcional. Se true, a collection é marcada para garantir que os documentos BSON estejam em conformidade com as especificações BSON. As verificações aumentam o tempo para concluir a operação de validação. Quaisquer problemas são devolvidos como aviso.

checkBSONConformance:

  • O padrão é false.

  • Está habilitado quando full está definido como true.

  • Não pode ser usado com:

    • repair definido como true.

    • metadata definido como true.

Novidades na versão 6.2.

O método db.collection.validate() pode consumir muitos recursos e afetar o desempenho da sua instância do MongoDB, especialmente em conjuntos de dados maiores.

O método db.collection.validate() obtém um bloqueio exclusivo na coleção. Isso bloqueará todas as leituras e gravações na coleção até a operação ser concluída. Quando executada em um secundário, a operação pode bloquear todas as outras operações nesse secundário até terminar.

Aviso

A validação tem requisitos de bloqueio exclusivo que afetam o desempenho em primários e em secundários que estão atendendo leituras. Considere executar db.collection.validate() apenas em nós que não estejam atendendo leituras ou gravações.

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.

Para minimizar o impacto da operação de validação nos aplicativos do cliente, execute o db.collection.validate() em um nó secundário que não esteja atendendo a solicitações de leitura. Você pode converter o nó primário atual em um nó secundário, executando o método rs.stepDown().

Para isolar completamente a operação do db.collection.validate() do tráfego do cliente, escolha uma das seguintes opções:

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.

A partir do MongoDB 6.2, o comando validate e o método db.collection.validate():

  • 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 checkBSONConformance que habilita verificações BSON abrangentes.

  • Para validar uma coleção myCollection usando a configuração de validação padrão (especificamente, full: false):

    db.myCollection.validate()
    db.myCollection.validate({ })
    db.myCollection.validate( { full: false } )
  • Para executar uma validação completa da coleção myCollection, especifique full: true:

    db.myCollection.validate( { full: true } )
  • Para reparar a coleção myCollection, especifique repair: true:

    db.myCollection.validate( { repair: true } )
  • Para executar verificações adicionais de conformidade com BSON em myCollection, especifique checkBSONConformance: true:

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

Para obter detalhes sobre a saída, consulte Validar saída.

Voltar

db.collection.updateOne