Validación de Datos en MongoDB: Mantén la Integridad de la Información
Clase 7 de 22 • Curso de Modelado de Datos en MongoDB
Resumen
¿Cómo mantener la integridad de los datos en MongoDB?
MongoDB es conocido por su flexibilidad, lo que permite una gestión de datos ágil y adaptable. Sin embargo, esta flexibilidad no significa que debamos perder la integridad de los datos. En este módulo aprenderás a crear esquemas de validación que aseguren el cumplimiento de las reglas de negocio y la estructura necesaria para tus documentos en MongoDB. Esto es indispensable para mantener un buen modelado de datos y seguir las mejores prácticas.
¿Cómo empezar la validación de datos en MongoDB?
Para mantener la integridad de la información en documentos de MongoDB, podemos seguir una serie de pasos:
-
Crear una base de datos y colección:
- Al utilizar una base de datos como PlatziStore, se puede crear de manera dinámica simplemente ejecutando queries.
-
Insertar documentos:
- Se realiza de manera sencilla y se beneficia de la dinámica de MongoDB, donde no es necesario crear la colección explícitamente antes de insertar, ya que se crea automáticamente.
-
Problemas comunes con la flexibilidad de MongoDB:
- MongoDB permite insertar documentos con información incompleta o incorrecta, como un email numérico, lo que puede afectar la integridad de los datos.
¿Cómo definir un esquema para validar documentos?
La creación de un esquema permite establecer reglas para tus documentos en MongoDB:
-
Uso de
JSON Schema
:- Se define un esquema usando el operador
JSONSchema
. Esto permite indicar el tipo de datos que cada propiedad de un documento debe tener.
- Se define un esquema usando el operador
-
Definición de propiedades:
- Utilizamos
bsonType
para especificar tipos de datos que soportan un mayor número de tipos que JSON corriente. - Por ejemplo, el email y el nombre deben ser de tipo string.
- Utilizamos
-
Asegurar requerimientos de datos:
- Es posible emplear
required
para designar cuáles campos son obligatorios en cada documento. - Campos como
email
ypassword
pueden ser requeridos, mientras que otros, comolast name
, son opcionales.
- Es posible emplear
db.createCollection("users", {
validator: {
$jsonSchema: {
bsonType: "object",
required: ["email", "password"],
properties: {
name: {
bsonType: "string",
description: "must be a string and is not required"
},
last_name: {
bsonType: "string",
description: "must be a string and is not required"
},
email: {
bsonType: "string",
description: "must be a string and is required"
},
password: {
bsonType: "string",
description: "must be a string and is required"
}
}
}
}
})
¿Qué hacer si la colección ya fue creada?
Cuando una colección ha sido creada dinámicamente y se desea actualizar su esquema de validación, se debe eliminar y volver a crear:
-
Borrar la colección:
- Usar el comando
db.collection.drop()
permite eliminar el esquema anterior para definir uno nuevo.
- Usar el comando
-
Recrear con el nuevo esquema:
- Tras borrar, se puede ejecutar el script de creación para aplicar el nuevo esquema de validación desde cero.
¿Qué tipo de datos podemos validar?
MongoDB, a través del formato bson
, permite validar una amplia variedad de tipos de datos:
- String
- Number (double, int, long, decimal)
- Boolean
- Date
- Array
- Objetos anidados
- Expresiones regulares
Estos tipos proporcionan flexibilidad al crear reglas de negocio más completas y adaptadas a las necesidades de tu aplicación. A medida que progreses, considerarás utilizar expresiones regulares para validaciones más específicas, como asegurar la complejidad de contraseñas.
Este conocimiento te brindará las herramientas para asegurarte de que, a pesar de la naturaleza flexible de MongoDB, tus datos siempre estarán bien estructurados y cumplirán con las expectativas de integridad y consistencia. Continúa explorando y profundizando tus habilidades en la gestión de datos, ¡cada paso te acerca a la maestría en bases de datos!