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

Definir regras de validação para o seu esquema

Nesta página

  • Aba Validação
  • Regras de Validação
  • Ações e Níveis de Validação
  • Limitações

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

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:

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.

Dica

Veja também:

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

Voltar

Insights de Desempenho