Tengo publicaciones que contienen una referencia de comentarios, los comentarios tienen una referencia de usuario. Quiero crear un método en el que pueda obtener al usuario con su comentario.
Post: [comment_id, comment_id] Comment: [user_id]Lo siguiente es lo que tengo hasta ahora:
postRouter.get('/:postId/comments', (req, res, next) => { Post.findOne({ _id: req.params.postId }) .populate('comments') // this does not work .populate('comments.user') .exec((err, comments) => { if (err) { res.status(500); return next(err); } return res.status(200).send(comments); // returns // { // "_id": "1234567", // "comments": [ { "_id": "891011", "body": "hello world", "user": "456789" }] // } }); });Como se indicó antes, donde obtengo el "usuario", me gustaría completarlo con el documento del usuario. es posible?
Si es posible. Puedes hacerlo así:
Post.findOne({ _id: req.params.postId }).populate([ { path: 'comments', populate: [{ path: 'user' }] } ]);