Menu Docs

Definir regras de validação para o seu esquema

A aba Validation permite a você gerenciar regras de validação do esquema para uma coleção.

A validação do esquema garante que todos os documentos em uma coleção sigam um conjunto definido de regras, como a conformidade com uma forma específica ou apenas permitindo um intervalo específico de valores nos campos.

Visualização de validação
clique para ampliar

O editor de validação oferece suporte à JSON Validação de esquema e à validação com expressões de query usando a Validação com operadores de query.

O operador $jsonSchema suporta várias palavras-chave para especificar regras de validação. Por exemplo:

  • O array required define os campos obrigatórios no documento.

  • O objeto properties define regras para campos de documentos específicos.

Para gerar um JSON schema analisando dados de amostra existentes, consulte Gerar regras de validação.

Considere o seguinte exemplo de validação:

{
$jsonSchema: {
bsonType: "object",
required: [ "address", "borough", "name" ],
properties: {
address: {
bsonType: "object",
properties: {
coord: {
bsonType: "array",
items: [
{
bsonType: "double",
minimum: -180,
maximum: 180,
exclusiveMaximum: false,
description: "must be a number in [ -180, 180 ]"
},
{
bsonType: "double",
minimum: -90,
maximum: 90,
exclusiveMaximum: false,
description: "must be a number in [ -90, 90 ]"
}
]
}
},
description: "must be an object"
},
borough: {
bsonType: "string",
enum: [ "Manhattan", "Brooklyn", "Queens", "Bronx", "Staten Island" ],
description: "must be one of the enum strings"
}
}
}
}

Esta validação especifica:

Para todas as palavras-chave do $jsonSchema disponíveis, consulte a página $jsonSchema no manual do MongoDB.

Também é possível especificar a validação utilizando operadores de query, com exceção dos seguintes operadores de query: $near, $nearSphere, $text e $where.

{
$or: [
{ name: { $type: "string" } },
{ borough: {
bsonType: "string",
enum: [ "Manhattan", "Brooklyn", "Queens", "Bronx", "Staten Island" ],
description: "must be one of the enum strings"
} }
]
}

Usando esta validação, um dos seguintes deve ser verdadeiro:

  • O campo name deve ser string do tipo BSON.

  • O campo borough deve ser uma das strings de enumeração.

Na parte superior, especifique uma Validation Action e um Validation Level:

  • A ação de validação determina se warn aceita documentos inválidos ou error e rejeita documentos inválidos.

  • O nível de validação determina o quão estritamente o MongoDB aplica as regras de validação aos documentos existentes.

    • Strict a validação aplica suas regras a todas as inserções e atualizações de documentos.

    • Moderate a validação só aplica suas regras a novos documentos e documentos válidos existentes. Documentos inválidos existentes não são afetados.

Para obter detalhes sobre ações de validação e níveis, consulte Especificar Regras de Validação no manual MongoDB.

A aba Validation não está disponível se você estiver conectado ao Atlas Data Federation.

O Compass não pode validar um esquema que tenha mais de 1000 campos distintos. Se você tentar validar um esquema com mais de 1000 campos distintos, o Compass retornará um erro.

No MongoDB Compass Readonly Edition, você só pode visualizar regras de validação. Não é permitido criar e editar regras de validação.