Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

$jsonSchema (operador de predicado de consulta)

$jsonSchema

El operador $jsonSchema compara los documentos que cumplen con el JSON Schema especificado.

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

{ $jsonSchema: <JSON Schema object> }

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

{ <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 es compatible con el borrador 4 del Esquema JSON, incluido 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.

Puedes especificar las siguientes palabras clave en tu JSON schema.

Nota

MongoDB implementa un subconjunto de palabras clave disponibles en JSON Schema. Para una lista completa de omisiones, consulta Omisiones.

Keyword
Tipo
Definición
Comportamiento

itemsAdicionales

Arreglos

Booleano o objeto

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

Propiedades adicionales

objeto

Booleano o objeto

Si true, están permitidos campos adicionales. Si false, no lo son. Si se especifica un objeto JSON Schema válido, los campos adicionales deben validarse según 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

string alias o arreglo de alias de string

Acepta igual alias de string usado para el operador $type

dependencies

objeto

Objeto

Describe las dependencias de campos o esquemas

Descripción

N/A

string

A string que describe el esquema y no tiene ningún efecto en 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 pasa la validación.

enum

todo tipo

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

exclusiveMinimum

números

booleano

Si es verdadero, minimum es un valor mínimo exclusivo. En caso contrario, se trata de un mínimo inclusivo.

elementos

Arreglos

objeto o matriz

Debe ser un JSON Schema válido o un arreglo de JSON Schemas válidos.

máximo

números

Número

Indica el valor máximo del campo

maxItems

Arreglos

entero

Indica la longitud máxima del arreglo

longitud máxima

Cuerdas

entero

Indica la longitud máxima del campo

maxProperties

objeto

entero

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

mínimo

números

Número

Indica el valor mínimo del campo

minÍtems

Arreglos

entero

Indica la longitud mínima del arreglo

minLength

Cuerdas

entero

Indica la longitud mínima del campo

minPropiedades

objeto

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 JSON Schema

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

Cuerdas

cadena que contiene una expresión regular

El campo debe coincidir con la expresión regular

patternProperties

objeto

Objeto

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

Propiedades

objeto

Objeto

Un esquema JSON válido donde cada valor también sea un objeto JSON Schema válido

Requerido

objeto

matriz de cadenas únicas

El conjunto de propiedades del objeto debe contener todos los elementos especificados en el arreglo

Título

N/A

string

Una string de título descriptiva sin efecto.

tipo

todo tipo

string o arreglo de cadenas únicas

Enumera los posibles tipos JSON del campo. Los tipos disponibles son "objeto", "arreglo", "número", "booleano", "string" y "nulo".

La implementación de MongoDB del esquema JSON no admite el tipo "entero". Utilza la palabra clave bsonType y los tipos "int" o "long" en su lugar.

Artículos únicos

Arreglos

booleano

Si es verdadero, cada elemento del arreglo 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 hipervínculo en el borrador 4 de la especificación JSON Schema.

  • 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