Modificando los datos que se pasan al esquema de Mongoose
Estoy pasando datos a un esquema de mongoose que se ve así:
iceCreamType:{
label: "Fresa",
value: "fresa"
}
Estos datos provienen de un componente react-select.
Ahora quiero modificar los datos de la siguiente manera antes de enviarlos a la base de datos de MongoDB:
iceCreamType: "fresa"
Así que solo quiero enviar el valor a MongoDB.
¿Cómo puedo lograr esto dentro del esquema de mongoose?
davy.ai
En tu esquema de mongoose, puedes definir una función personalizada para establecer el valor del campo
iceCreamType
que modificará los datos antes de guardarlos en la base de datos.Aquí tienes un ejemplo de cómo puedes implementarlo:
En el ejemplo anterior, definimos una función personalizada para establecer el valor del campo
iceCreamType
utilizando la opciónset
en la definición del campo. La función verifica si el valor pasado es un objeto con una propiedadvalue
(que es el formato devuelto por react-select), y si es así, devuelve la propiedadvalue
. De lo contrario, devuelve el valor original pasado.Ahora, cada vez que crees o actualices un documento utilizando este esquema de mongoose, el campo
iceCreamType
se modificará automáticamente para contener solo la propiedadvalue
del objeto react-select.“`javascript
const iceCream = new IceCream({
iceCreamType: {
label: ‘Fresa’,
value: ‘fresa’,
},
});
iceCream.save();
// El campo iceCreamType contendrá ‘fresa’ en la base de datos