Definir regras de validação para o seu esquema
Aba Validação
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.
Regras de Validação
O editor de validação oferece suporte à validação de esquema JSON e à validação com expressões de query usando operadores de query. Depois de clicar no botão Update, o Compass atualiza para exibir um documento de sua coleção que passa na validação e um documento que falha.
Validação de JSON schema
Para especificar a validação do JSON schema, use o operador $jsonSchema.
{ $jsonSchema: { required: ['name', 'borough'], // the name and borough fields are required properties: { cuisine: { bsonType: "string", description: "must be a string" } } } }
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.
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:
A lista de campos necessários.
O bsonType para todos os campos obrigatórios.
Os valores aceitos para o campo
borough
, utilizando enumeração.
Para todas as palavras-chave do $jsonSchema
disponíveis, consulte a página $jsonSchema no manual do MongoDB.
Validação usando Operadores de Query
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.
Ações e Níveis de Validaçã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 ouerror
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.
Limitações
A aba Validation não está disponível se você estiver conectado ao Atlas Data Federation.
No MongoDB Compass Readonly Edition, você só pode visualizar regras de validação. Não é permitido criar e editar regras de validação. .. END-COMPASS-ONLY