Contenido del curso
Proyecto
Validación de datos
Relaciones
- 12

Relaciones en Bases de Datos NoSQL: Embebidas y Referenciales
10:29 min - 13

Relaciones uno a uno embebidas en MongoDB
10:09 min - 14

Relaciones uno a uno con $lookup en MongoDB
09:52 min - 15

Relaciones Uno a Muchos: Embebidas y Referenciadas en Bases de Datos
10:46 min - 16

Relaciones Uno a Muchos con Referencias en Bases de Datos
15:19 min - 17

Relaciones Muchos a Muchos en Bases de Datos: Tiendas y Productos
14:31 min - 18

Relaciones Muchos a Muchos en Bases de Datos Documentales
07:04 min
Bonus: patrones
Próximos pasos
Validación de números, booleanos y enums en MongoDB
Resumen
Validar datos en MongoDB no se limita a los strings. Cuando trabajas con JSON Schema, puedes definir reglas precisas para números, booleanos y enums, asegurando que cada documento cumpla con la integridad que tu negocio necesita sin perder la flexibilidad de las bases documentales.
Esta guía te muestra cómo aplicar validadores avanzados en una colección de usuarios, con ejemplos directos en consola y errores típicos que vas a encontrar al insertar documentos.
Cómo valido un campo numérico con mínimo y máximo en MongoDB
Cuando defines un campo de tipo numérico dentro de tu JSON Schema, no basta con declarar el tipo. Puedes acompañarlo de límites que evitan que entren datos fuera de rango.
Por ejemplo, si tu colección users pide la edad, declaras el bsonType como number y agregas dos propiedades:
minimum: el valor mínimo aceptado, por ejemplo 18.maximum: el valor máximo aceptado, por ejemplo 99.- Ambos límites se evalúan al momento del insert [02:10].
Si alguien intenta insertar una edad de 15, MongoDB rechaza el documento. Cambias el valor a 19 y la validación pasa sin problema.
¿Qué hace minimum y maximum en JSON Schema? Definen el rango permitido para un campo numérico. Si el valor cae fuera del rango, el insert falla con un error de validación.
Por qué cuidar los typos al escribir el schema
Un detalle pequeño puede romper toda la validación. En la práctica, escribir minimun en lugar de minimum genera un error porque MongoDB no reconoce la palabra clave. Revisa siempre la ortografía de las propiedades antes de correr el comando.
Cómo declaro un campo booleano en una colección de MongoDB
Los booleanos sirven para representar estados de sí o no, como saber si un usuario está soltero. En el schema, defines el bsonType como bool [02:45].
Si intentas insertar un string en ese campo, la validación falla. Solo se aceptan los valores true o false. Esta restricción evita que datos mal tipados se cuelen en tu colección y rompan consultas posteriores.
Qué es un enum en MongoDB y cuándo conviene usarlo
Un enum es una variante de string, pero con una lista cerrada de opciones permitidas. Es ideal cuando un campo solo puede tomar valores específicos y no admite texto libre.
En una colección de usuarios, el campo role es un caso típico. Las opciones válidas pueden ser:
customer, para clientes.seller, para vendedores.admin, para administradores.
Si alguien intenta insertar un rol distinto, como manager, MongoDB rechaza el documento. Solo los tres valores definidos en el enum son aceptados [03:20].
¿Qué diferencia hay entre un string y un enum? Un string acepta cualquier texto. Un enum limita el valor a una lista predefinida, garantizando consistencia en los datos.
Cómo marco un campo como requerido en el schema
Además de validar el tipo, puedes obligar que un campo exista en cada documento. Agregas el nombre del campo al array required dentro del JSON Schema.
En el ejemplo, los campos obligatorios son email, password y role. Si insertas un documento sin role, MongoDB devuelve un error de validación. El resto de campos, como age o isSingle, son opcionales, pero si los incluyes deben cumplir las reglas del schema.
Cómo aplico cambios al validador de una colección existente
Cuando modificas el JSON Schema de una colección que ya existe, necesitas eliminar la colección con drop y volver a crearla con el nuevo validador. Este paso limpia los documentos previos y aplica las nuevas reglas desde cero.
El flujo típico es:
- Ejecutar
db.users.drop()para borrar la colección. - Volver a crearla con
createCollectiony el schema actualizado. - Probar los inserts para confirmar que las validaciones funcionan [04:30].
Después de aplicar los cambios, un find te muestra los documentos que pasaron las validaciones. En el ejemplo quedan dos usuarios: uno con solo los campos obligatorios y otro con age y isSingle adicionales, ambos cumpliendo las reglas.
La ventaja es clara: mantienes la flexibilidad de un modelo documental, donde algunos atributos son opcionales, pero garantizas que los datos críticos siempre estén presentes y bien formados.
¿Has aplicado enums en tus colecciones? Cuéntame en los comentarios qué casos de uso has resuelto con validadores numéricos o booleanos.