Hay un esquema de base de datos que incluye dos colecciones, customers y orders . Cada pedido tiene una referencia a su cliente:
properties: { /* other properties */ customer: { ref: 'customers', type: 'string' } }El problema es que cuando trato de guardar un pedido con un cliente que no existe en la base de datos (por ejemplo, puede haber sido eliminado en ese momento), esta maldad se manejaría silenciosamente:
const db = await createDB(); await db.customers.insert({ name: 'John Doe' }); await db.orders.insert({ /* other properties */ customer: 'Ann Lewis' // oops, there is no such a user in the db }); // but no error would be thrown here const order = await db.orders.findOne().exec(); const customer = await order.populate('customer'); // bare null here Por lo tanto, el cliente completo es null aunque se marcó como required con el esquema.
¿Cómo puedo forzar una regla de verificación existente para el cliente dentro de una transacción?