Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Docs Menu

Establece reglas de validación para tu esquema

La pestaña Validation le permite gestionar reglas de validación de esquemas para una colección.

La validación de esquemas garantiza que todos los documentos de una colección sigan un conjunto definido de reglas, como ajustarse a una estructura específica o permitir solo un rango especificado de valores en los campos.

Vista de validación
1
  1. Si aún no aparece, se debe seleccionar la organización que contiene el proyecto en el menú Organizations de la barra de navegación.

  2. Si aún no se muestra, seleccione su proyecto en el menú Projects de la barra de navegación.

  3. En la barra lateral, haz clic en Data Explorer en la sección Database.

    El Data Explorer se muestra.

IMPORTANTE: También puede hacer clic en el nombre de un grupo para abrir la barra Cluster lateral y luego hacer clic Data Explorer en debajo del Shortcuts encabezado.

2
  1. Seleccione la colección.

  2. Haz clic en la pestaña Validation.

El editor de validación admite la validación de esquema JSON, y la validación mediante expresiones de consulta utilizando operadores del query. Después de hacer clic en el botón Update, Atlas se actualiza para mostrar un documento de tu colección que pasa la validación y un documento que falla.

Para especificar la validación del esquema JSON, utiliza el operador $jsonSchema.

{
$jsonSchema: {
required: ['name', 'borough'], // the name and borough fields are required
properties: {
cuisine: {
bsonType: "string",
description: "must be a string"
}
}
}
}

El operador $jsonSchema es compatible con varios términos clave para indicar reglas de validación. Por ejemplo:

  • El arreglo required define los campos requeridos en tu documento.

  • El objeto properties define reglas para campos de documentos específicos.

Considera el siguiente ejemplo de validación:

{
$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 validación especifica:

  • La lista de campos requeridos.

  • El bsonType para todos los campos obligatorios.

  • Los valores mínimos y máximos en el arreglo address.coord.

  • Los valores aceptables para el campo borough, usando enum.

Para todos $jsonSchema los $jsonSchema disponibles, consulte la página $jsonSchema en el manual de MongoDB.

También puedes especificar la validación utilizando operadores del query, con la excepción de los siguientes operadores del query: $near, $nearSphere, $text y $where.

{
$or: [
{ name: { $type: "string" } },
{ borough: {
bsonType: "string",
enum: [ "Manhattan", "Brooklyn", "Queens", "Bronx", "Staten Island" ],
description: "must be one of the enum strings"
} }
]
}

Al utilizar esta validación, una de las siguientes condiciones debe ser verdadera:

  • El campo name debe ser de tipo BSON string.

  • El campo borough debe ser uno de los strings enum.

En la parte superior, especifica un Validation Action y Validation Level:

  • La acción de validación determina si se debe warn pero aceptar documentos inválidos, o error y rechazar documentos inválidos.

  • El nivel de validación determina cómo MongoDB aplica estrictamente las reglas de validación a los documentos existentes.

    • Strict La validación aplica tus reglas a todas las inserciones y actualizaciones de documentos.

    • Moderate la validación solo aplica sus reglas a los nuevos documentos y a los documentos válidos existentes. Los documentos inválidos existentes no se ven afectados.

Para detalles sobre acciones y niveles de validación, consulta Especificación de reglas de validación en el manual de MongoDB.

La pestaña Validation no está disponible si está conectado a Atlas Data Federation.