Tengo este problema al eliminar un Objeto dentro de Array. Parece que no entiendo cuál es la forma correcta de eliminar un elemento usando $pull. ¡Gracias por adelantado!
datos JSON
"accountId": "62efd8c008f424af397b415d", "links": [ { "url": "www.github.com/iluvkohii", "title": "GitHub" }, { "url": "www.github.com/iluvkohii", "title": "GitHub" }, { "url": "www.github.com/iluvkohii", "title": "GitHub", "_id": "62efe1ee4675d0baa10bd219" }, { "url": "www.github.com/iluvkohii", "title": "GitHub", "linkId": "62efe4e142099faeeb5999d0" } ]Código
try { const { accountId, _id } = req.body; return Profile.findOneAndUpdate( { accountId }, { $pull: { links: { _id } } }, { new: true, } ) .then((value) => res.status(200).json(value)) .catch((err) => res.status(400).json(err.errors)); } catch (error) { console.error(error); }Acabo de resolver mi propia pregunta después de un día de darme cuenta de que una cadena normal no es igual a Mongoose ObjectId
try { const { accountId, _id } = req.body; return Profile.findOneAndUpdate( { accountId }, { $pull: { links: { id: mongoose.Types.ObjectId(_id) } } }, { new: true }, ) .then((value) => res.status(200).json(value)) .catch((err) => res.status(400).json(err.errors)); } catch (error) { console.error(error); }