Tengo un esquema Mongoose con una variedad de subdocumentos, que se ve así:
const cardsSchema = new mongoose.Schema({ cards: [ { front: String, back: String, nameOfSuperset: String, nameOfSet: String, }, ], }); const Cards = mongoose.model("Cards", cardsSchema);He creado un documento a partir del modelo anterior y estoy insertando un par de objetos en la matriz de subdocumentos de este documento:
exports.createCards = async (req, res, next) => { const userCards = await Cards.findById(req.user.cards); for (let i = 0; i < req.body.cards.length; i++) { userCards.cards.push(req.body.cards[i]); } const created = await userCards.save(); console.log(created); res.status(201).json({ status: "success", }); }; Cuando consola.log este documento guardado, o lo miro en MongoDB Compass, hay un valor nulo en el documento al final de la matriz de subdocumentos. No estoy empujando ningún objeto vacío en este documento. La matriz original, de la que obtengo objetos para empujar (req.body.cards) no tiene elementos nulos ni objetos vacíos. Lo he registrado en la consola.
¿Qué es este nulo y cómo puedo deshacerme de él?
reemplazar bucle for con forEach
req.body.cards.forEach(item=>{ userCards.cards.push(item) })