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