Tengo un esquema "Boulder" en joi :
module.exports.boulderSchema = Joi.object({ name: Joi.string().required(), grade: Joi.string().required(), image: Joi.string().required(), description: Joi.string().required(), reviews: Joi.any() })con el esquema "Revisar":
module.exports.reviewSchema = Joi.object({ rating: Joi.number().required().min(1).max(5), comment: Joi.string().required() })el esquema de mangosta "Boulder" al que hace referencia mi Joi Schema es el siguiente:
const boulderSchema = new Schema({ name: { type: String, required: true }, grade: { type: String, required: true }, image: { type: String, required: true }, description: { type: String, required: true }, reviews: [{type: Schema.Types.ObjectId, ref:'Review'}] });y también mi esquema de mangosta "Revisión":
const reviewSchema = new Schema({ rating: { type: Number, required: true }, comment: { type: String, required: true } }); Así que aquí está la pregunta... Cuando creo un punto de datos de "roca", puede tener una "revisión" adjunta, o puede tener una "revisión" null , de ahí mi código de Joi.any() para aceptar ambos. También estoy comprobando si las reseñas están vacías y usando delete req.body['reviews']; en mi ruta de publicación antes de guardar mi punto de datos. He .alternatives() y .when() pero no estoy seguro de cómo usarlo.
Supongo que mi pregunta viene en dos partes.
null con Joi.any() y luego....array() de objectId que coincide con la referencia a "Revisar"?en todo caso, así es como debe hacerse. ¡Estoy totalmente perdido y cualquier ayuda será apreciada!