Docs Menu
Docs Home
/ /
query de evaluación

$jsonSchema

$jsonSchema

El operador $jsonSchema coincide con los documentos que satisfacen el esquema JSON especificado.

La expresión del operador $jsonSchema tiene la siguiente sintaxis:

{ $jsonSchema: <JSON Schema object> }

Donde el objeto de esquema JSON está formateado de acuerdo con el 4 borrador del estándar de esquema JSON.

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

Por ejemplo:

{
$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" }
}
}
}
}
}

MongoDB admite 4 el borrador del esquema JSON, incluyendo la especificación principal y la especificación de validación, con algunas diferencias. Para más detalles, consulte Extensiones y omisiones.

Para obtener más información sobre JSON Schema, consulta el sitio web oficial.

Puede especificar las siguientes palabras clave en su esquema JSON.

Nota

MongoDB implementa un subconjunto de palabras clave disponibles en el esquema JSON. Para obtener una lista completa de omisiones, consulte Omisiones.

Keyword
Tipo
Definición
Comportamiento

artículos adicionales

matrices

booleano u objeto

Si es un objeto, debe ser un esquema JSON válido

Propiedades adicionales

objetos

booleano u objeto

Si true, se permiten campos adicionales. Si false, no. Si se especifica un objeto de esquema JSON válido, los campos adicionales deben validarse con el esquema.

Se establece por defecto en true.

allOf

todo tipo

matriz de objetos de esquema JSON

El campo debe coincidir con todos los esquemas especificados

anyOf

todo tipo

matriz de objetos de esquema JSON

El campo debe coincidir con al menos uno de los esquemas especificados

bsonType

todo tipo

alias de cadena o matriz de alias de cadena

Acepta lo mismo alias de cadena utilizados para el $type operador

dependencies

objetos

Objeto

Describe dependencias de campos o esquemas

Descripción

N/A

string

Una cadena que describe el esquema y no afecta la validación. A partir de MongoDB 5.1, si se especifica el campo description, MongoDB incluye el description en la salida de error cuando un documento no supera la validación.

enum

todo tipo

matriz de valores

Enumera todos los valores posibles del campo

exclusivoMáximo

números

booleano

Si es verdadero y el campo es un número, maximum es un máximo exclusivo. De lo contrario, es un máximo inclusivo.

exclusivoMínimo

números

booleano

Si es verdadero, minimum es un mínimo exclusivo. De lo contrario, es un mínimo inclusivo.

elementos

matrices

objeto o matriz

Debe ser un esquema JSON válido o una matriz de esquemas JSON válidos

máximo

números

Número

Indica el valor máximo del campo

máximo de artículos

matrices

entero

Indica la longitud máxima de la matriz

longitud máxima

cadenas

entero

Indica la longitud máxima del campo

maxProperties

objetos

entero

Indica el número máximo de propiedades del campo.

mínimo

números

Número

Indica el valor mínimo del campo

minItems

matrices

entero

Indica la longitud mínima de la matriz

minLongitud

cadenas

entero

Indica la longitud mínima del campo.

minPropiedades

objetos

entero

Indica el número mínimo de propiedades del campo

múltipleDe

números

Número

El campo debe ser un múltiplo de este valor

no

todo tipo

un objeto de esquema JSON

El campo no debe coincidir con el esquema

uno de

todo tipo

matriz de objetos de esquema JSON

El campo debe coincidir exactamente con uno de los esquemas especificados

patrón

cadenas

cadena que contiene una expresión regular

El campo debe coincidir con la expresión regular

Propiedades del patrón

objetos

Objeto

Además de los requisitos properties, cada nombre de propiedad de este objeto debe ser una expresión regular válida

propiedades

objetos

Objeto

Un esquema JSON válido donde cada valor también es un objeto de esquema JSON válido

Requerido

objetos

matriz de cadenas únicas

El conjunto de propiedades del objeto debe contener todos los elementos especificados en la matriz

Título

N/A

string

Una string de título descriptiva sin efecto.

tipo

todo tipo

cadena o matriz de cadenas únicas

Enumera los posibles tipos JSON del campo. Los tipos disponibles son "objeto", "matriz", "número", "booleano", "cadena" y "null".

La implementación del esquema JSON de MongoDB no admite el tipo "integer". Utilice la palabra clave bsonType y los tipos "int" o "long".

Artículos únicos

matrices

booleano

Si es verdadero, cada elemento de la matriz debe ser único. De lo contrario, no se aplica ninguna restricción de unicidad.

La implementación de JSON Schema de MongoDB incluye la adición de la palabra clave bsonType, que te permite utilizar todos los tipos BSON en el operador $jsonSchema. bsonType acepta los mismos alias de cadena utilizados para el operador $type.

Los siguientes no son compatibles con la implementación del esquema JSON de MongoDB:

  • Definiciones de hipertexto en 4 el borrador de la especificación del esquema JSON.

  • Las palabras clave:

    • $ref

    • $schema

    • default

    • definitions

    • format

    • id

  • El integer tipo. Debe utilizar el tipo BSON int o long con la bsonType palabra clave.

  • Propiedades de hipermedia y vinculación del esquema JSON, incluido el uso de referencias JSON y punteros JSON.

  • Palabras clave desconocidas.

Para ver ejemplos que utilizan $jsonSchema, consulte las siguientes páginas:

Volver

$expr

En esta página