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

$jsonSchema

Nesta página

  • Definição
  • Sintaxe
  • JSON schema
  • Exemplos
$jsonSchema

O operador $jsonSchema corresponde a documentos que satisfazem o JSON schema especificado.

A expressão do operador $jsonSchema tem a seguinte sintaxe:

{ $jsonSchema: <JSON Schema object> }

Onde o objeto JSON schema é formatado de acordo com rascunho 4 do padrão JSON schema.

{ <keyword1>: <value1>, ... }

Por exemplo:

{
$jsonSchema: {
required: [ "name", "major", "gpa", "address" ],
properties: {
name: {
bsonType: "string",
description: "must be a string and is required"
},
address: {
bsonType: "object",
required: [ "zipcode" ],
properties: {
"street": { bsonType: "string" },
"zipcode": { bsonType: "string" }
}
}
}
}
}

O MongoDB suporta rascunhos 4 do JSON schema, incluindo a especificação principal e a especificação de validação, com algumas diferenças. Par obter detalhes, consulte Extensões e Omissões.

Para mais informações sobre JSON schema, consulte o site oficial.

Você pode especificar as seguintes palavras-chave em seu JSON schema.

Observação

O MongoDB implementa um subconjunto de palavras-chave disponíveis no JSON schema. Para obter uma lista completa das omissões, consulte Omissões.

Keyword
Tipo
Definição
Comportamento

additionalItems

arrays

booleano ou objeto

Se for um objeto, deve ser um JSON schema válido

Propriedades adicionais

objetos

booleano ou objeto

Se true, são permitidos campos adicionais. Se false, não são. Se um objeto de JSON schema válido for especificado, campos adicionais deverão ser validados em relação ao esquema.

Padrão é true.

allOf

todos os tipos

array de objetos de JSON schema

O campo deve corresponder a todos os esquemas especificados

anyOf

todos os tipos

array de objetos de JSON schema

O campo deve corresponder a pelo menos um dos esquemas especificados

bsonType

todos os tipos

alias de string ou array de aliases de string

Aceita os mesmos aliases de string usados para o operador $type

dependencies

objetos

objeto

Descreve dependências de campo ou esquema

Descrição

N/A

string

Uma string que descreve o esquema e não tem efeito na validação. A partir do MongoDB 5.1, se o campo description for especificado, o MongoDB incluirá a description na saída de erro quando um documento falhar na validação.

enum

todos os tipos

array de valores

Enumera todos os valores possíveis do campo

exclusiveMaximum

números

booleano

Se true e campo for um número, maximum é um máximo exclusivo. Caso contrário, é um máximo inclusivo.

exclusiveMinimum

números

booleano

Se true, minimum é um mínimo exclusivo. Caso contrário, é um mínimo inclusivo.

items

arrays

objeto ou array

Deve ser um JSON schema válido ou uma array de JSON schemas válidos

maximum

números

número

Indica o valor máximo do campo

maxItems

arrays

inteiro

Indica o comprimento máximo da array

maxLength

strings

inteiro

Indica o comprimento máximo do campo

maxProperties

objetos

inteiro

Indica o número máximo de propriedades do campo

minimum

números

número

Indica o valor mínimo do campo

minItems

arrays

inteiro

Indica o comprimento mínimo da array

minLength

strings

inteiro

Indica o comprimento mínimo do campo

minProperties

objetos

inteiro

Indica o número mínimo de propriedades do campo

multipleOf

números

número

O campo deve ser um múltiplo deste valor

não

todos os tipos

um objeto de JSON schema

O campo não deve corresponder ao esquema

oneOf

todos os tipos

array de objetos de JSON schema

O campo deve corresponder exatamente a um dos esquemas especificados

padrão

strings

string que contém um regex

O campo deve corresponder à expressão regular

patternProperties

objetos

objeto

Além dos requisitos de properties, cada nome de propriedade deste objeto deve ser uma expressão regular válida

properties

objetos

objeto

Um JSON schema válido onde cada valor também é um objeto de JSON schema válido

necessário

objetos

array de strings exclusivas

O conjunto de propriedades do objeto deve conter todos os elementos especificados na array

title

N/A

string

Uma string de título descritiva sem efeito.

type

todos os tipos

string ou array de strings exclusivas

Enumera os possíveis tipos de JSON do campo. Os tipos disponíveis são "object", "array", "number", "boolean", "string" e "null".

A implementação do JSON schema do MongoDB não oferece suporte ao tipo "integer". Use a palavra-chave bsonType e os tipos "int" ou "long".

uniqueItems

arrays

booleano

Se true, cada item na array deverá ser exclusivo. Caso contrário, nenhuma restrição de exclusividade será imposta.

A implementação do JSON schema do MongoDB inclui a adição da palavra-chave bsonType, que permite usar todos os tipos BSON no operador $jsonSchema. bsonType aceita os mesmos aliases de string usados para o operador $type.

O seguinte não é permitido na implementação do JSON schema do MongoDB:

  • Definições de hipertexto no rascunho 4 da especificação do JSON schema.

  • As palavras-chave:

    • $ref

    • $schema

    • default

    • definitions

    • format

    • id

  • O tipo integer. Você deve usar o tipo BSON int ou long com a palavra-chave bsonType.

  • Hipermídia e propriedades de vinculação do JSON schema, incluindo o uso de referências JSON e ponteiros JSON.

  • Palavras-chave desconhecidas.

Para exemplos que usam $jsonSchema, consulte as seguintes páginas:

Voltar

$expr