asi que
async findAll(req, res) { await WorkModel.find({}) .sort('when') .populate({path: 'artists', populate: { path: 'categories'}}) .then(response => { return res.status(200).json(response); }) .catch(error => { return res.status(500).json(error); }); }Necesito en esta función eliminar obras de la población que sucede son artistas, pero cuando trato de pasar
{path: 'artists -works', populate: { path: 'categories'}}
Obtengo {} respuesta, o incluso cuando intento
{path: 'artists -works', populate: { path: 'categories'}}, '-works'
en el poblado
el método solo obtiene un stackTrace, no tengo pistas, por favor, ayúdame.
Si desea seleccionar solo el campo de works de la colección de categories , use poblar. puedes hacerlo usando select !
¡Prueba este código que te ayudará! Para más ayuda mongoosejs.com
async findAll(req, res) { await WorkModel.find({}) .sort('when') .populate({path: 'artists', populate: { path: 'categories', select: 'works'}}) .then(response => { return res.status(200).json(response); }) .catch(error => { return res.status(500).json(error); }); }Entonces, la solución para eliminar las obras de la relación de muchos a muchos en los artistas fue
async findAll(req, res) { await WorkModel.find({}) .sort('when') .populate({path: 'artists', select:'-works', populate: { path: 'categories'}}) .then(response => { return res.status(200).json(response); }) .catch(error => { return res.status(500).json(error); }); }Gracias por todos los comentarios, realmente ayudaron.