Quiero obtener una lista de todos los usuarios, comparar la lista con una base de datos de encuestas para ver cuántos votos ha recibido cada uno de ellos, agregar esos valores de voto al objeto de usuario y enviarlos de vuelta al frente.
Leí ejemplos en SO como este: 'TypeError: meme.find(...).forEach no es una función' en mongoose node js? y esto: Agregar propiedades en un bucle forEach en Mongoose
Estoy tratando de hacer lo mismo.
Tengo un código simple, pero no funciona.
Intento #1 :
let users = await User.find({teams: {$in: req.user.team_oid}}, {_id: 1, firstname: 1, lastname: 1}) users.forEach(async(user, i) => { let nomineeCount = await Survey.countDocuments({_id: mongoose.Types.ObjectId(req.params.s_oid), 'facilitators.nominee': mongoose.Types.ObjectId(user._id) }) user["votes"] = nomineeCount; if(i+1 === users.length) {res.json({users: users})} }) Las consultas y todo funciona, excepto que el user no recibe la propiedad ["votes"] .
Intento #2 :
let users = await User.find({teams: {$in: req.user.team_oid}}, {_id: 1, firstname: 1, lastname: 1}) let nominees = users; users.map( async (user, i) => { let nomineeCount = await Survey.countDocuments({_id: mongoose.Types.ObjectId(req.params.s_oid), 'facilitators.nominee': mongoose.Types.ObjectId(user._id) }) nominees[i].votes = nomineeCount; if(i+1 === nominees.length) {res.json({users: nominees})} }) Esto tampoco puede adjuntar la propiedad .votes .
Cualquier idea / sugerencia apreciada.